我正在编写一个使用 vfmadd231ph(来自 avx512_fp16)和 vpbroadcastw(来自 avx512bw)的程序。该程序在运行时检测 CPU 功能并分派到代码路径(包括需要 avx512_fp16 和 avx512bw 的路径)。我的问题是:在存在 avx512_fp16 的情况下,avx512bw 是否得到保证?看过这篇文章: 这里引用了英特尔文档“AVX512_FP16* ISA 扩展要求实现 AVX512BW 功能...”
因此,对于英特尔机器来说,假设这一点似乎是可以的。
AMD 机器怎么样?我找不到有关此问题的任何信息?与英特尔相比,AMD 关于 Avx512 的文档总体上有所欠缺。
Clang 似乎认为这适用于所有 avx512_fp16,无论供应商是谁。我想这样做是安全的。
我之所以询问是因为我正在使用内联汇编,如果不能保证这一点,那么当 avx512bw 存在或不存在时,我将不得不有单独的 2x 代码路径,而我想避免这种情况。
谢谢
我期待着 AMD 能给出一份规范。
编辑 1:此外,据我所知,没有 AMD CPU 具有 avx512_fp16。因此,我更想问的是未来的 CPU,如果有这样的 CPU 的话。
编辑2:更具体地说,我询问是否有其他人有我错过的更多信息和在线文档。