设为首页收藏本站

爱吱声

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

[信息技术] C++ 比 Octave 慢好多,怎么破?

[复制链接]

该用户从未签到

楼主
发表于 2022-9-23 07:02:18 | 显示全部楼层
互相关这种是最适合矢量化的,Octave应该是用SIMD 或者CUDA写了核心的计算部分。所以比没有优化的快很多。我差不多20年前做过类似的二维相关处理,优化过的比老师自己写的快了三四十倍,实验室的小崽子们怨声载道。因为本来等处理完一次数据需要差不多六七个小时,正好打游戏。优化完了之后不到二十分钟就好了。啥也干不了。3 {) H$ Y7 ~1 L$ j
你想省事的话用Intel的IPP库,里面有现成的高度优化的互相关函数。或者用CUDA自己写一个。% y" f' p, [* ^+ l, o
你做信号处理很熟的话,这个还可以用FFT来做。应该会更快一些。九十年代很多人这么处理,主要是那时候CPU实在太慢。现在基本用不着了。而且FFT前后处理比较麻烦,加窗什么的。

点评

给力: 5.0 油菜: 5.0
涨姿势: 5.0
给力: 5 涨姿势: 5
  发表于 2022-9-23 22:31
油菜: 5 给力: 5 涨姿势: 5
  发表于 2022-9-23 18:40
油菜: 5 涨姿势: 5
  发表于 2022-9-23 11:16
给力: 5
  发表于 2022-9-23 09:14

评分

参与人数 2爱元 +18 收起 理由
雨楼 + 8
colin1992 + 10

查看全部评分

回复 支持 1 反对 0

使用道具 举报

该用户从未签到

沙发
发表于 2022-9-23 15:48:12 | 显示全部楼层
雷达 发表于 2022-9-23 08:13) `. s2 u2 ~3 h% \& G
嗯, 我就是觉得 FFT 反而麻烦,互相关代码本身倒真没有几行。那看来就用 octave 就好了,没必要再用C++ ...

# Q) Z( H5 H  J0 rSTL对性能优化没什么帮助,只是写起来比较安全而已。$ \: {3 n: z  _
下面数值分析回答的是对的,要么用avx自己写,要么就凑合用octave得了。
" U" a/ ?( w) V7 k9 H/ s买个Ipp库虽然不贵,但是还是要几百刀的吧?% b3 U* ?2 U1 k% n4 P& Z
回复 支持 反对

使用道具 举报

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

GMT+8, 2024-5-18 00:30 , Processed in 0.032962 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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