如果我使用 AVX2 创建应用程序,它会在其他机器上运行吗?

Posted

技术标签:

【中文标题】如果我使用 AVX2 创建应用程序,它会在其他机器上运行吗?【英文标题】:If I create an application using AVX2 will it run on other machines? 【发布时间】:2020-07-22 13:40:53 【问题描述】:

我正在构建一个应用程序,该应用程序的算法在运行时需要很长时间才能完成,因此我正在考虑使用 AVX2 来加快速度。但我不知道应用程序是否会以同样快速的方式在用户的机器上运行,或者它是否会在他们的机器上运行。

【问题讨论】:

如果目标 CPU 不支持 AVX2,您的应用会因 Illegal instruction 而崩溃。 如果你不能假设AVX2,你需要检查CPUID并设置一个函数指针,或者类似的东西。谷歌runtime CPU dispatching. 【参考方案1】:

它不会在不支持 AVX2 的 CPU 上运行。因此,在开始算法之前,您必须查询 CPU 是否支持 AVX2。如果答案是否定的,您的应用程序必须能够通过运行 AVX 甚至仅运行 SSE2 继续运行。

【讨论】:

以上是关于如果我使用 AVX2 创建应用程序,它会在其他机器上运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

“您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:AVX2”错误

AVX/AVX2 是不是“存在”在每个内核上?

程序不能在 Win XP 上运行,但会在 Win7 上运行

Android MediaPlayer 停止和播放

如何制作跨模块变量?

创建线程会在终止时挂起 MFC 对话框应用程序