Лучшие практики для бэкендов
x86 ЦП
Компилируемые рабочие нагрузки на современных процессорах x86 обычно оптимизируются набором команд Single Instruction Multiple Data (SIMD). SIMD — это типичный метод параллельной обработки для высокопроизводительных вычислений, таких как обучение и инференс моделей глубокого обучения. При применении SIMD каждый вычислительный блок выполняет одну и ту же инструкцию с различными распределёнными данными в любой момент времени. Наиболее часто используемые архитектуры наборов инструкций x86 (ISA), поддерживающие SIMD, включают AVX, AVX2, AVX-512 и AMX.
Вы можете проверить поддерживаемые ISA для вашей машины, используя скрипт collect_env. Так как скрипт предоставляет полную информацию об окружении для PyTorch, мы можем использовать grep для извлечения строки, содержащей информацию об ISA:
python collect_env.py | grep "a[(v|m)]x"
Обычно, если поддерживается AVX-512, инструкции начинаются с «avx512» (например, avx512f, avx512bw, avx512_vnni) должны быть замечены. Если поддерживается AMX, инструкции начинаются с «amx» (например, amx_tile, amx_bf16, amx_int8) должны быть замечены.
В частности, на серверах с включёнными инструкциями AMX производительность рабочих нагрузок может быть дополнительно повышена за счёт использования AMX.
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/torch.compiler_best_practices_for_backends.html