使用英特尔®软件开发仿真器(又名SDE)在支持未来指令集的仿真CPU上运行可执行文件。它是免费软件(不是开放源代码,而是免费下载),并且可用于Linux,Windows和OSX。
https://software.intel.com/zh-cn/articles/debugging-applications-with-intel-sde提供了有关如何在Windows或Linux上进行调试的分步说明:SDE可以用作GDB远程服务器,因此您可以运行sde -debug -- ./your-program,然后在另一个终端中运行gdb ./your-program并用于target remote :portnumber连接到SDE流程,从而可以设置断点和单步执行。
如果QEMU添加了对模拟AVX512的支持,则您也许可以对QEMU做同样的事情。QEMU也可以充当GDB远程服务器。
QEMU绝对具有可配置的指令集,例如,您可以告诉它使用AVX而不是AVX2(如Sandybridge)来模拟x86。SDM可能做同样的事情。
如果要验证您的CPUID检查没有假设任何暗示任何其他无法保证的内容,您甚至可以告诉它模拟在真实硬件上找不到的东西,例如AVX2,但不能模拟BMI1 / 2。
请记住,它们对于性能测试基本上是无用的,仅用于矢量化的正确性。 IACA可能对了解SKX的性能很有用,但是它远非完美,并且根本没有建模内存瓶颈。(仅在某些详细级别上使用实际的管道。)