Shortcuts

后端最佳实践

x86 CPU

现代x86 CPU上的编译工作负载通常通过单指令多数据(SIMD)指令集进行优化。SIMD是一种典型的高性能计算并行处理技术,例如深度学习模型训练和推理。应用SIMD后,每个计算单元在任何给定的时间槽中使用不同的分配数据执行相同的指令。最常用的支持SIMD的x86指令集架构(ISAs)包括AVX, AVX2, AVX-512AMX

您可以通过使用collect_env 脚本来检查您的机器支持的指令集架构(ISAs)。由于该脚本提供了 PyTorch 的完整环境信息,我们可以使用 grep 来提取包含 ISA 信息的行:

python collect_env.py | grep "a[(v|m)]x"

通常情况下,如果支持AVX-512,指令会以“avx512”开头(如avx512favx512bwavx512_vnni)。如果支持AMX,指令会以“amx”开头(如amx_tileamx_bf16amx_int8)。

具体来说,在启用了AMX指令的服务器上,通过利用AMX,工作负载的性能可以进一步提升。

优云智算