当前位置: 首页 > news >正文

报错:CPU指令集的问题

bug描述

我在运行CMAQ中的icon时,遇到bug:

Please verify that both the operating system and the processor support Intel(R) X87, CMOV, MMX, FXSAVE, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, POPCNT and AVX instructions.

解决办法

经过查询,是因为:
我使用的超算平台是基于AMD自研的CPU,不支持-xHost,而我的icon是通过ifort编译的,只用了-xHost,因此不兼容。

(1)通过命令

grep -i xhost * -r

去找到使用xhost命令的编译文件

(2)重新编译,我将我的编译代码从:

set FSTD       = "${myFSTD}"

改为了

set FSTD       = "-O3 -fno-alias -mp1 -fp-model source -ftz -simd -align all -march=core-avx2 -vec-guard-write -unroll-aggressive"

注:
如果还是不行,兼容不了,就用:

set FSTD       = "-O3 -fno-alias -mp1 -fp-model source -ftz -simd -align all -march=core-avx -vec-guard-write -unroll-aggressive"

甚至更保守的:

set FSTD       = "-O3 -fno-alias -mp1 -fp-model source -ftz -simd -align all -msse4.2 -vec-guard-write -unroll-aggressive"

编译完就可以成功运行了。

说明:

-xHost:
这是Intel编译器特有的选项。
它会自动检测当前编译机器的CPU,并为该特定CPU生成最优化的代码。
优点:可以充分利用编译机器CPU的所有特性。
缺点:生成的可执行文件可能无法在不同架构的CPU上运行,或运行效率降低。

-march=core-avx2:
这是一个更通用的选项,被多种编译器支持(如GCC、Clang和Intel编译器)。
它指定了目标架构为支持AVX2指令集的CPU。
优点:生成的可执行文件可以在所有支持AVX2的CPU上运行,提供了更好的可移植性。
缺点:可能无法利用编译机器CPU的一些特殊优化或更新的指令集。

如果再到AMD平台编译软件,而且使用的ifort,可以使用-march=core-avx2提高兼容性。
当然,还有个办法就是,都使用GCC编译器。

http://www.lryc.cn/news/432256.html

相关文章:

  • Type-C接口诱骗取电快充方案
  • 图像白平衡
  • SAP Business One 与无锡哲讯:携手共创企业数字化未来
  • Unity Adressables 使用说明(五)在运行时使用 Addressables(Use Addressables at Runtime)
  • 什么是死锁,如何解决?
  • 借助ChatGPT三步,完成课题申报书中研究价值部分写作全攻略指南
  • IDEA取消自动选择光标所在行
  • VUE2.0 elementUI el-input-number 数据更新,视图不更新——基础积累
  • JS中this指向问题
  • 大厂面试:小米嵌入式面试题大全及参考答案(130+道 12万长文)
  • React 更新界面
  • JavaSE-易错题集-001
  • 【人工智能学习笔记】1_人工智能基础
  • 【前端】animation动画以及利用vue制作简单的透明度改变动画,包含vue生命周期实现
  • mysql优化案例分享
  • C语言中结构体struct和联合体union的区别
  • Verilog:【8】基于FPGA实现SD NAND FLASH的SPI协议读写
  • 目标检测-RT-DETR
  • 业务资源管理模式语言09
  • Spring Boot + Vue 多级目录的构建详解
  • Android的Launch
  • Deep Ocr
  • 图片验证码
  • 004: VTK读入数据---vtkImageData详细说明
  • 分割千万级,将大文件分割为小件 csv
  • SQL COUNT() 函数深入解析
  • vue3和vue2的双向绑定原理
  • [C++]刷题
  • 职称评审中,论文发表要求?
  • 连续信号的matlab表示