如何使用GCC或llvm编译英特尔VNNI指令?

如何使用GCC或llvm编译英特尔VNNI指令?,gcc,llvm,intel,Gcc,Llvm,Intel,英特尔宣布了其新的AVX512扩展指令。我正在模拟它的VNNI指令。我指的是这本手册。我在google上搜索gcc或llvm是否支持VNNI指令。我只发现他们正在研究的消息。如果有人知道如何编译VNNI指令(如指令VPDPBUSD和VPDPWSSD),请与我分享。非常感谢 以下标志允许生成AVX512-VNNI指令 >=gcc 8.1,>=clang 7.0.0 -march=icelake客户端 -march=icelake服务器 >=gcc 9.1,>=clang 8.0.0 -mar

英特尔宣布了其新的AVX512扩展指令。我正在模拟它的VNNI指令。我指的是这本手册。我在google上搜索gcc或llvm是否支持VNNI指令。我只发现他们正在研究的消息。如果有人知道如何编译VNNI指令(如指令VPDPBUSD和VPDPWSSD),请与我分享。非常感谢

以下标志允许生成AVX512-VNNI指令

>=gcc 8.1,>=clang 7.0.0
  • -march=icelake客户端
  • -march=icelake服务器
>=gcc 9.1,>=clang 8.0.0
  • -march=cascadelake
使用编译器资源管理器进行测试:

从以下链接下载的代码示例:


,英特尔为AVX512-VNNI发送了修补程序,并为其添加了内置程序。(该链接添加了
VPDPBUSD
,补丁集中的其他消息会执行其他操作)。IDK,如果这些被接受到主线或没有,但如果没有,然后尝试用它们构建一个gcc。你希望编译器会自动矢量化它们吗?或者您想通过Intel
\uuuuM512i
内部函数或GCC
\uuuuuuu内置ia32\uVPDPBUSD\uV8SI
使用它们?或者使用内联asm,因此如果您使用的是gcc,则只需要汇编程序支持(binutils),或者LLVM的内置汇编程序支持。感谢@PeterCordes提供的信息,我刚刚发现gcc 7.3版本支持VNNI指令。我可以使用-mavx5124vnniw选项编译VNNI指令(但是-mavx512vnni选项不起作用)。AVX512-VNNI(冰湖)是AVX-512 4VNNIW(奈特磨坊,下一代Xeon Phi,类似于AVX512-4fmap)的不同扩展。他说,目前还没有计划用这两种处理器构建任何CPU。另请参阅该页的“指令集”部分,了解CPU引入哪些扩展的详细信息。有每晚的gcc版本,并且很容易尝试不同的命令行选项。