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

上海网站建设设计公司排名google play下载安卓

上海网站建设设计公司排名,google play下载安卓,新疫情最新消息今天,南昌企业自助建站在上一篇博文《海光处理器与AMD Zen1的指令差异-CSDN博客》中发现,海光相比AMD,缺失了一些指令集。 那么在AMD或Intel上编译出来的程序,可以跑在海光上吗? 这个问题的关键,在于编译器默认使用哪些指令来编译程序。以Ce…

        在上一篇博文《海光处理器与AMD Zen1的指令差异-CSDN博客》中发现,海光相比AMD,缺失了一些指令集。

        那么在AMD或Intel上编译出来的程序,可以跑在海光上吗?

        这个问题的关键,在于编译器默认使用哪些指令来编译程序。以CentOS8.4为例,它自带的gcc版本为gcc version 8.4.1 20200928:

[root@CentOS8 ~]# gcc -v

Using built-in specs.

COLLECT_GCC=/usr/bin/gcc

COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper

OFFLOAD_TARGET_NAMES=nvptx-none

OFFLOAD_TARGET_DEFAULT=1

Target: x86_64-redhat-linux

Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux

Thread model: posix

gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC)

        gcc在编译的时候,可通过-march=来指定要使用的指令范围,默认值为-march=x86-64,这个默认值是构建gcc自身时指定的,即上表中的--with-arch_32=x86-64。

        接下来看一下-march=x86-64代表的指令范围。

[root@CentOS8 ~]# gcc -march=x86-64 -c -Q --help=target | grep -i enabled

  -m128bit-long-double                  [enabled]

  -m64                                  [enabled]

  -m80387                               [enabled]

  -malign-stringops                     [enabled]

  -mavx256-split-unaligned-load         [enabled]

  -mavx256-split-unaligned-store        [enabled]

  -mfancy-math-387                      [enabled]

  -mfp-ret-in-387                       [enabled]

  -mfxsr                                [enabled]

  -mglibc                               [enabled]

  -mhard-float                          [enabled]

  -mieee-fp                             [enabled]

  -mlong-double-80                      [enabled]

  -mmmx                                 [enabled]

  -mno-sse4                             [enabled]

  -mpush-args                           [enabled]

  -mred-zone                            [enabled]

  -msse                                 [enabled]

  -msse2                                [enabled]

  -mstv                                 [enabled]

  -mtls-direct-seg-refs                 [enabled]

  -mvzeroupper                          [enabled]

        这些指令代表什么意思呢?

 -march=x86-64 of GCC8.4.1(CentOS8.4)x86-64Instructions
m128bit-long-double[enabled]sizeof(long double) is 16.
m64[enabled]Generate 64bit x86-64 code.
m80387[enabled]Use hardware fp.
malign-stringops[enabled]Align destination of the string operations.
march=x86-64Generate code for given CPU.
mavx256-split-unaligned-load[enabled]d Split 32-byte AVX unaligned load.
mavx256-split-unaligned-store[enabled]re Split 32-byte AVX unaligned store.
mfancy-math-387[enabled]Generate sin, cos, sqrt for FPU.
mfp-ret-in-387[enabled]Return values of functions in FPU registers.
mfxsr[enabled]Support FXSAVE and FXRSTOR instructions.
mglibc[enabled]Use GNU C library.
mhard-float[enabled]Use hardware fp.
mieee-fp[enabled]Use IEEE math for fp comparisons.
mlong-double-80[enabled]Use 80-bit long double.
mmmx[enabled]Support MMX built-in functions.
mno-sse4[enabled]Do not support SSE4.1 and SSE4.2 built-in functions and code generation.
mpush-args[enabled]Use push instructions to save outgoing arguments.
mred-zone[enabled]Use red-zone in the x86-64 code.
msse[enabled]Support MMX and SSE built-in functions and code generation.
msse2[enabled]Support MMX, SSE and SSE2 built-in functions and code generation.
mstv[enabled]Disable Scalar to Vector optimization pass transforming 64-bit integer computations into a vector ones.
mtls-direct-seg-refs[enabled]Use direct references against %gs when accessing tls data.
mvzeroupper[enabled]Generate vzeroupper instruction before a transfer of control flow out of the function.

        很明显,这个-march=x86-64代表的指令范围很小,海光全部都支持。所以,默认情况下,在AMD上编译的程序,依然可以跑在海光上。 

         如果gcc编译的时候指定-march=znver1,那么海光可以运行吗?答案是否定的,因为至少有2个指令集海光是不支持的:aes和pclmul。

        只有一种特例:那就是程序本身并不涉及加解密,编译之后的汇编代码不包括aes和pclmul相关指令,即使编译的时候指定-march=znver1,那么这个程序还是可以跑在海光上的。

 -march=??? of GCC8.4.1(CentOS8.4)x86-64znver1
m128bit-long-double[enabled][enabled]
m64[enabled][enabled]
m80387[enabled][enabled]
mabm[disabled][enabled]
madx[disabled][enabled]
maes[disabled][enabled]
malign-stringops[enabled][enabled]
march=x86-64znver1
mavx[disabled][enabled]
mavx2[disabled][enabled]
mavx256-split-unaligned-store[enabled][enabled]
mbmi[disabled][enabled]
mbmi2[disabled][enabled]
mclflushopt[disabled][enabled]
mclzero[disabled][enabled]
mcx16[disabled][enabled]
mf16c[disabled][enabled]
mfancy-math-387[enabled][enabled]
mfma[disabled][enabled]
mfp-ret-in-387[enabled][enabled]
mfsgsbase[disabled][enabled]
mfxsr[enabled][enabled]
mglibc[enabled][enabled]
mhard-float[enabled][enabled]
mieee-fp[enabled][enabled]
mlong-double-80[enabled][enabled]
mlzcnt[disabled][enabled]
mmmx[enabled][enabled]
mmovbe[disabled][enabled]
mmwaitx[disabled][enabled]
mpclmul[disabled][enabled]
mpopcnt[disabled][enabled]
mprfchw[disabled][enabled]
mpush-args[enabled][enabled]
mrdrnd[disabled][enabled]
mrdseed[disabled][enabled]
mred-zone[enabled][enabled]
msahf[disabled][enabled]
msha[disabled][enabled]
msse[enabled][enabled]
msse2[enabled][enabled]
msse3[disabled][enabled]
msse4[disabled][enabled]
msse4.1[disabled][enabled]
msse4.2[disabled][enabled]
msse4a[disabled][enabled]
mssse3[disabled][enabled]
mstv[enabled][enabled]
mtls-direct-seg-refs[enabled][enabled]
mtune=genericznver1
mvzeroupper[enabled][enabled]
mxsave[disabled][enabled]
mxsavec[disabled][enabled]
mxsaveopt[disabled][enabled]
mxsaves[disabled][enabled]

如果你觉得有用,请点赞收藏哈! 

http://www.shuangfujiaoyu.com/news/44247.html

相关文章:

  • 建设工程168网站产品seo优化
  • 廊坊免费网站建设模板搜索推广广告
  • java开发的手机网站建设公司网站设计模板
  • 无货源网店进货appseo云优化软件
  • 洛阳疫情为啥不公布沙洋县seo优化排名价格
  • 用dw做的网页如何上传到网站信息流推广主要具有哪两大优势
  • 外贸网站建设产品让顾客心动的句子
  • 我想卖自己做的鞋子 上哪个网站好谷歌 chrome 浏览器
  • 电商网站开发详细介绍宁波关键词优化平台
  • 京鑫建设集团网站数字营销策略有哪些
  • 厦门做网站哪家公司好seo现在还有前景吗
  • 网站制作找云优化网站流量宝
  • wordpress轻语博客seox
  • 北流网站建设百度公司推广电话
  • 建设企业网站中国建设银行网页seo搜索引擎优化
  • 免费ppt背景图seo网站的优化方案
  • 网站做测试网站推广的基本方法
  • 网站首页效果图怎么设计seo优化的常用手法
  • 免费网站诊断黄页大全
  • 做网站工作图东莞市民最新疫情
  • 武大网站建设网站设计规划
  • 深圳搜索引擎优化推广便宜北京云无限优化
  • 做拉皮条网站优化网哪个牌子好
  • 吉林市做网站的公司哪家好百度seo效果怎么样
  • 邯郸网站建设代理推广网站的方法有哪些
  • wordpress删除自豪的seo优化是什么
  • 怎么做文化传媒公司网站合肥做网站哪家好
  • 营销型网站建站公司扬州seo
  • 网站后台制作教程电脑学校培训
  • 二级网站排名做不上去推广技巧