|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2021/1/3 0:52:28 |
标题: |
RS10.4 是不是不支持 SSE3/SSE4/AVX256/AVX512/FMA 指令? |
浏览:2014 |
|
加入我的收藏 |
楼主: |
查看了帮助,查了官网都没有找到相关信息。
Delphi 好像也就支持到 SSE2 指令。SSE3 指令就不认了。 C++Builder 中,使用 clang5,好像也就支持到 SSE2。
望大侠指点一二
----------------------------------------------
武汉天气不好 |
作者: |
|
2021/1/3 3:28:33 |
1楼: |
不是不支援,而是没有东西要用上. JCL 套件有可以判断你的机械支援何种指令, 但应用方面就要由你去编写或找第三方元件.
----------------------------------------------
-
|
作者: |
|
2021/1/3 10:02:43 |
2楼: |
https://github.com/lgxZJ/Miscellaneous/tree/master/SIMD intrin.h All Architectures 8.0 2005 mmintrin.h MMX intrinsics 6.0 6.0 SP5+PP5 xmmintrin.h Streaming SIMD Extensions intrinsics 6.0 6.0 SP5+PP5 emmintrin.h Willamette New Instruction intrinsics (SSE2) 6.0 6.0 SP5+PP5 pmmintrin.h SSE3 intrinsics 9.0 2008 tmmintrin.h SSSE3 intrinsics 9.0 2008 smmintrin.h SSE4.1 intrinsics 9.0 2008 nmmintrin.h SSE4.2 intrinsics. 9.0 2008 wmmintrin.h AES and PCLMULQDQ intrinsics. 10.0 2010 immintrin.h Intel-specific intrinsics(AVX) 10.0 2010 SP1 ammintrin.h AMD-specific intrinsics (FMA4, LWP, XOP) 10.0 2010 SP1 mm3dnow.h AMD 3DNow! intrinsics 6.0 6.0 SP5+PP5
#include <mmintrin.h> //MMX #include <xmmintrin.h> //SSE(include mmintrin.h) #include <emmintrin.h> //SSE2(include xmmintrin.h) #include <pmmintrin.h> //SSE3(include emmintrin.h) #include <tmmintrin.h>//SSSE3(include pmmintrin.h) #include <smmintrin.h>//SSE4.1(include tmmintrin.h) #include <nmmintrin.h>//SSE4.2(include smmintrin.h) #include <wmmintrin.h>//AES(include nmmintrin.h) #include <immintrin.h>//AVX(include wmmintrin.h) #include <intrin.h>//(include immintrin.h)
mmintrin.h MMX __m64 8字节对齐 xmmintrin.h SSE __m128 16字节对齐 emmintrin.h SSE2 __m128i __m128d 16字节对齐 immintrin.h AVX __m256 __m256i __m256d 32字节对齐
要是有人翻译下就舒服了。
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/1/3 12:44:58 |
3楼: |
支持这两个字就要看定义了 delphi的basm支持sse2的指令关键字 但Delphi的编译器本身不只是SIMD的各种指令,他不会自动把我们常写的PASCAL代码编译成SIMD指令,想用只能自己写BASM的内嵌汇编。 实际上如果你用bd这个话理论上可以支持任意指令,包括未来的指令。早期的Delphi7用bd指定来支持SSE5和AVX指令都没问题。当然如果能在BASM内置关键字更方便,不用再去背指令的机器码数值
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
|
2021/1/3 16:35:48 |
5楼: |
用 BD 太麻烦了。
关键是 BC 也不支持。 BC 现在用的是 CLANG,应该是支持的。应该是 5.0 版本太低的缘故吧。
要么用 VC ,要么用 FPC。看来只能是这样了。
----------------------------------------------
武汉天气不好
|
作者: |
|
2021/1/3 19:26:48 |
6楼: |
用NASM,编译成obj然后link进来就可以了,x86/x64所有指令扩展都支持。不用纠结编译器内置的汇编器,有专用的工具总比半吊子的东西好。
----------------------------------------------
-
|
作者: |
|
2021/1/4 8:00:21 |
7楼: |
感谢楼上。
http://rvelthuis.de/articles/articles-nasm.html
Embarcadero 好像也打算用 NASM 替换 TASM。
----------------------------------------------
武汉天气不好
|
作者: |
|
2021/1/4 9:30:52 |
8楼: |
System.TestSSE
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
|
作者: |
|
2021/1/4 10:58:30 |
9楼: |
Windows 平台下的 Delphi 可以链接(link)的文件格式:
x86: OMF / 支持OMF格式的汇编 Tasm、Nasm、Yasm、Solasm (x86) COFF(必须是 xe2 版本以上)
x64: dcc64: OMF / 支持OMF格式的汇编 Tasm、Nasm、Yasm、Solasm (x64) COFF(必须是 xe2 版本以上)
bcc64: OMF / 支持OMF格式的汇编 Tasm、Nasm、Yasm、Solasm (x64) ELF64(必须是 xe10 版本以上)
FreePascal 虽然语法上和 Delphi 都是 Pascal,但输出的格式是 COFF 格式。
不知道总结的对不对。不对之处,还望高手指点。
----------------------------------------------
武汉天气不好
|
作者: |
|
2021/1/4 11:48:08 |
10楼: |
Windows平台BCC64也一样用MS COFF64
----------------------------------------------
-
|
作者: |
|
2021/1/4 12:16:56 |
11楼: |
谢谢 Scarlette 大侠的指正。
----------------------------------------------
武汉天气不好
|
作者: |
|
2021/1/4 13:16:29 |
12楼: |
linux 下 测试过ubuntu gcc编译的.0 用delphi 能链 。功能正常(变量可能没对上)
安卓(下载地址)有编译的没去测试
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/1/4 16:15:15 |
13楼: |
Android 底下用 Delphi 也可以去链接 C 开发的库。
----------------------------------------------
-
|
作者: |
|
2021/1/4 16:47:41 |
14楼: |
遇到过一个hashXXX(忘记了论坛里面有发过).C gcc编译的o给delphi调用会av gcc调用没事。。 用bcc 和 cl 都没事 就很神奇。。。
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/1/4 22:57:22 |
15楼: |
看到一个C# 用法 汇编代码被表示成带注释的字节数组:
因特尔手册 留着备查 https://www.felixcloutier.com/x86/index.html 在线版。
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/1/5 11:07:55 |
16楼: |
你说的C#指令做成字节数组就是ShellCode啊,分配一段可执行内存,把数组拷贝进去,准换成函数指针调用即可。 这段所谓的数组也是汇编或者其他Native高级语言撸出来的
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
|
2021/1/6 21:50:36 |
19楼: |
https://software.intel.com/sites/landingpage/IntrinsicsGuide/files/data-3.5.4.xml
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/1/6 21:58:37 |
20楼: |
本地http没问题 浏览器直接打开没测试(测试完毕 xml 加载不上) 有人能把xml 插js 或者html 么。。。。。我不会,,
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/1/14 10:08:48 |
21楼: |
Intel 指令集 CHM 版本:
----------------------------------------------
武汉天气不好
|
|