如果我使用 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 创建应用程序,它会在其他机器上运行吗?的主要内容,如果未能解决你的问题,请参考以下文章