【问题标题】:The compiled Intel compiler XE 19 not working at Windows 10 AMD Ryzen with error 0xc000007b using /Qparallel编译后的英特尔编译器 XE 19 在 Windows 10 AMD Ryzen 上无法使用 /Qparallel 出现错误 0xc000007b
【发布时间】:2020-01-22 15:15:26
【问题描述】:

我尝试使用 Windows 10 1909 上的 Intel Parallel XE Fortran 19.0 Update 1 编译 Dave Frank 的 TEST_FPU 基准测试,该基准测试现在压缩为多面体基准测试。

TEST_FPU2.f90 是从 Polyhedron https://www.fortran.uk/pb11.zip 下载的 http://www.lps.ens.fr/~dominiq/polyhedron/test_fpu.f90上的旧的 新的多面体站点。

我尝试了一些开关,包括 /O2 和 /O3 以及 /Qparallel 在英特尔工作站上编译:

替代 1:ifort /O2 test_fpu2.f90 /link /stack:64000000

替代 2:ifort /O3 test_fpu2.f90 /link /stack:64000000

替代 3:ifort /O3 /Qparallel test_fpu2.f90 /link /stack:64000000

/O2 /O3 alt1 和 alt 2 都可以正常工作。而 alt 3:通过多线程增强的自动并行出现错误“应用程序无法在 Windows 10 AMD Ryzen 工作站和笔记本电脑上正确启动 (0xc00000b7);Ryzen 3600 和锐龙 2700U。

同时,所有英特尔笔记本电脑和工作站第 9 代和第 8 代都适用于所有替代品,但需要文件 libiomp5md.dll,并且不需要安装可再发行库。

在 AMD 工作站中,我们尝试使用可再发行组件https://software.intel.com/en-us/articles/redistributable-libraries-for-intel-c-and-fortran-2019-compilers-for-windows

在 AMD 机器上安装 redistributable 后,程序突然关闭。

因此,使用自动并行,编译后的程序在 AMD 无法运行。 有什么线索吗?

已编辑:使用自动并行,编译不工作非自动并行

【问题讨论】:

  • 此特定错误的通常原因是 Windows 无法映射所有各种固定内存要求,包括静态代码和数据以及堆栈。为什么自动并行很重要,我不知道。我是否正确理解安装可再发行组件会改变行为。我非常怀疑处理器品牌与此有任何关系。
  • 感谢史蒂夫多年来对 fortran 开发的贡献。是否可以手动使其并行而不是 ifort 中的自动并行?并且 /Qopenmp 也会犯同样的错误 0xc00000b7
  • 您当然可以使用 OpenMP 将“定向并行”添加到应用程序中。我没有这样做的个人经验。仅添加 /Qopenmp 不会使事情变得并行 - 它告诉编译器您要使用 OpenMP 并默认使所有过程递归。您得到的错误是我在上面的评论中提出的 - Windows 无法满足所有关于程序部分映射到内存的请求。

标签: fortran intel intel-fortran amd-processor


【解决方案1】:

英特尔 Parallel XE 2020 解决了这个问题。 该问题存在于 Parallel XE 2019 Update 2 中。 同时,2019 Update 3 到 Update 5 的另一个尚未检查。

【讨论】:

    猜你喜欢
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 2014-02-19
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多