今天尝试了 OpenMP 加速 for 循环,发现效果并不明显,很难写出一个比串行耗时少的 demo。
在网上查了后发现不少人也出现了这个问题
可能有用的方法1:OpenMP 的计时不能用 clock(),这玩意在多线程上测量是不准确的。
可能有用的方法2:schedule 改为 static,手动分配好
本来设想用 OpenMP 加速一个耗时约 4ms 的函数,感觉可能不太好用。
现在还是用 cuda 优化
image.png
目前辅助数据耗时减少了大概4ms,代码放在固态上跑的话 copy 部分也会快一点,少了4ms左右,现在时间接近 30ms,感觉有点希望了。
哈哈,终于找到 flex 中 初始化阶段构造 device_vector 的方法了,耗时29ms了
网友评论