数学研发论坛

 找回密码
 欢迎注册
楼主: gxqcn

[讨论] 重启大整数库 HugeCalc 的研发工作

  [复制链接]
发表于 2020-2-7 21:51:00 | 显示全部楼层
好像,mulx支持更普遍点,adcx/adox支持弱很多
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-2-7 21:54:23 | 显示全部楼层
gxqcn 发表于 2020-2-7 21:21
谢谢指点!

ADCX, MULX 将尽可能用上(我前年买的 i7-8550U 应该支持吧),

https://blog.csdn.net/xiuye2015/article/details/51408224

试试这个测试程序执行结果
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-2-8 09:10:58 | 显示全部楼层

  1. GenuineIntel
  2. Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
  3. 3DNOW not supported
  4. 3DNOWEXT not supported
  5. ABM not supported
  6. ADX supported
  7. AES supported
  8. AVX supported
  9. AVX2 supported
  10. AVX512CD not supported
  11. AVX512ER not supported
  12. AVX512F not supported
  13. AVX512PF not supported
  14. BMI1 supported
  15. BMI2 supported
  16. CLFSH supported
  17. CMPXCHG16B supported
  18. CX8 supported
  19. ERMS supported
  20. F16C supported
  21. FMA supported
  22. FSGSBASE supported
  23. FXSR supported
  24. HLE not supported
  25. INVPCID supported
  26. LAHF supported
  27. LZCNT supported
  28. MMX supported
  29. MMXEXT not supported
  30. MONITOR supported
  31. MOVBE supported
  32. MSR supported
  33. OSXSAVE supported
  34. PCLMULQDQ supported
  35. POPCNT supported
  36. PREFETCHWT1 not supported
  37. RDRAND supported
  38. RDSEED supported
  39. RDTSCP supported
  40. RTM not supported
  41. SEP supported
  42. SHA not supported
  43. SSE supported
  44. SSE2 supported
  45. SSE3 supported
  46. SSE4.1 supported
  47. SSE4.2 supported
  48. SSE4a not supported
  49. SSSE3 supported
  50. SYSCALL supported
  51. TBM not supported
  52. XOP not supported
  53. XSAVE supported
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-2-8 09:14:45 | 显示全部楼层
无心人 发表于 2020-2-7 21:51
好像,mulx支持更普遍点,adcx/adox支持弱很多

正好,我主要需要的是 mulx,对 adcx/adox 并不怎么需要,
因为,内部数据并不是用满全部 bit 的,“进位加”运算的适用场合很少。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-2-8 09:27:31 | 显示全部楼层
另外,请教 无心人,我记得好像有一个指令,可以将一个数按 bit 位反序,叫什么来着?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-2-8 10:00:34 | 显示全部楼层
gxqcn 发表于 2020-2-8 09:27
另外,请教 无心人,我记得好像有一个指令,可以将一个数按 bit 位反序,叫什么来着?

有个BSWAP是字节顺序反序

然后4,2,1三步移位
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-2-8 10:14:46 | 显示全部楼层
我刚刚也查到了这个指令,是按字节反序,
如果能做到按位反序的话,可以免去一个查表的过程,
其中,查表也是为了用空间换时间。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-2-8 10:21:07 | 显示全部楼层
gxqcn 发表于 2020-2-8 10:14
我刚刚也查到了这个指令,是按字节反序,
如果能做到按位反序的话,可以免去一个查表的过程,
其中,查表 ...

查表不见得比三步移位快,最好测试下

点评

好的,到时对比下  发表于 2020-2-8 10:24
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-2-13 20:42:51 | 显示全部楼层
gxqcn 发表于 2020-2-7 21:21
关于汇编,我打算先安装 Intel C++ Compiler,它允许内联汇编,看看效果;
如不行,再考虑独立汇编。


看编译器支持:https://zh.cppreference.com/w/cpp/compiler_support
发现现在 Intel C++ 远不如 MSVC 对标准支持得好,
比如“三路比较运算符” operator <=>,前者就不支持,后者支持。

所以,决定放弃用 Intel C++ Compiler,
看来,写独立汇编是必须要过的坎了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-2-13 22:10:21 | 显示全部楼层
gxqcn 发表于 2020-2-13 20:42
看编译器支持:https://zh.cppreference.com/w/cpp/compiler_support
发现现在 Intel C++ 远不如 MSVC ...


Intel C++ Compiler还是比较冷门的。我觉得只要支持 gcc  和visual studio 两个就充分且完备了。再完美一点就用clang前端。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2021-9-21 22:44 , Processed in 0.057221 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表