设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 3148|回复: 25
打印 上一主题 下一主题

[信息技术] C++ 提速的新发现

[复制链接]

该用户从未签到

楼主
发表于 2022-9-27 20:29:50 | 显示全部楼层
雷达 发表于 2022-9-24 23:54, o3 K# v1 G! I, W5 M* r
void xcorr(comp* outcomp, comp* A, int lenA, comp* B, int lenB)0 o2 w) v; |( D# y
{
% E8 H! Y. C# d        comp temp, xtimesy;
# ?' i" [2 O6 K, R' M  w" `
这个code里面如果Openmp没有被注释掉的话,那么temp那个变量应该是定义在循环里面,否则线程之间会存在争夺写入那个temp的风险。
5 V% ?6 n$ Y* h# y内层for循环如果没有内部操作的话,编译时应该被优化掉了,和你完全注册掉整个循环是一回事。可能你的编译设置没有打开优化?
; i# k8 L/ `7 ^% s  B( AVS社区版没有问题,我工作用的就是社区版,设置正常的话不会比商业版差。以前游说头头用Intel Compiler,他说不想花钱,而且差不了多少,就一直用到现在。
回复 支持 反对

使用道具 举报

该用户从未签到

沙发
发表于 2022-9-27 20:39:22 | 显示全部楼层
雷达 发表于 2022-9-26 01:30' P8 K% L9 T6 Y" f* C7 O
理了理思路,重新做了一个测试。( R, p& M0 c! g' d
做了两个 vector 和 两个 float *, 都长 100000
  L+ e, z  _6 |& O' t外循环 6000,里面先做随 ...

, |" u6 P# u  D% M. n- A& k# C这个时间是从哪里开始算的?
9 }/ h) `3 b7 X7 G) f3 _& L! z我怀疑这个200多秒里面有200秒花在产生随机数上了,真正计算大概只用了2秒, 用了vector那个因为有vector的额外开销,多了几十秒。
1 [4 Z6 V) q, ^+ G0 o' \3 k按照两个10万个数字的相关计算的规模来估计的话,两秒都算很长很长了。这个结果真的很奇怪。
回复 支持 反对

使用道具 举报

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2024-5-21 09:49 , Processed in 0.035721 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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