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

报错: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.kler.cn/a/293407.html

相关文章:

  • STM32单片机WIFI语音识别智能衣柜除湿消毒照明
  • 若依笔记(八):Docker容器化并部署到公网
  • 【Vue】Vue3.0(二十一)Vue 3.0中 的$event使用示例
  • MTSET可溶于DMSO、DMF、THF等有机溶剂,并在水中有轻微的溶解性,91774-25-3
  • 解决:WSL2可视化opencv和pyqt冲突:QObject::moveToThread
  • Linux学习笔记之组管理和权限管理
  • Nest.js 实战 (十一):配置热重载 HMR 给服务提提速
  • 鸿蒙界面开发——组件(6):属性字符串(StyledString)文本输入
  • Linux_kernel移植uboot07
  • 单例模式singleton
  • C#基础(2)枚举
  • 工作流之Activiti7 和BPMN讲解
  • Elastic Stack--ES集群加密及Kibana的RBAC实战
  • 报错:Reached the max session limit(DM8 达梦数据库)
  • 【C语言】---- 复合数据类型之结构体(Struct)
  • 期权虚值和实值的投资风险有什么不同?
  • docker 安装mongoDB
  • Anchor Alignment Metric来优化目标检测的标签分配和损失函数。
  • Apache CloudStack Official Document 翻译节选(十三)
  • 使用多尺度C-LSTM进行单变量时间序列异常检测
  • 细胞因子系列
  • 92. UE5 GAS RPG 使用C++创建GE实现灼烧的负面效果
  • 嵌入式学习(链式栈和链式队列)
  • yolov8目标检测pyside6可视化图形界面+检测源码ui文件——用于计数统计
  • Docker基本使用:创建clickhouse容器
  • OKRs-E 目标管理上手指南