设为首页收藏本站

爱吱声

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

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

[复制链接]

该用户从未签到

楼主
发表于 2022-9-23 20:53:40 | 显示全部楼层
雷声 发表于 2022-9-23 15:48" E# G1 I+ Z' y: N( c
STL对性能优化没什么帮助,只是写起来比较安全而已。3 _( l7 E# G  k! `# e
下面数值分析回答的是对的,要么用avx自己写,要么 ...

5 T$ G! z5 d, T" X! I, }' h  a你觉得在用AVX自己写与用GPU加速的Octave之间,谁有可能性能上超出?(基于中等价位的硬件水平)
回复 支持 反对

使用道具 举报

该用户从未签到

沙发
发表于 2022-10-2 01:38:20 | 显示全部楼层
现在进展怎么样了?4 K* t8 ^- V. C, c1 F. j
" `/ I0 }6 z2 p1 {0 g# ]5 s
想了解一下你问题的规模:" U6 l0 U# n7 S* ]* @! U' b
1) 你说互相关是一个一维矢量和一个二维数组里的矢量依次做,那么这个二维数组有什么特殊意义吗?需要对所有维度按列操作并返回一个矩阵,还是就是简单的一对一算过去?换一句话,本质上要的是一个1-维互相关算法,还是N-维互相关算法。
8 Z7 v- Y- p6 K1 s8 z2) 矢量和一个二维数组的长度大概是多少?
% X! ]+ N0 l1 ^8 a+ ~# L- R3) Octave 大约跑了多长时间,你心里期望的速度大约是多少?
回复 支持 反对

使用道具 举报

该用户从未签到

板凳
发表于 2022-10-3 01:16:57 | 显示全部楼层
雷达 发表于 2022-10-2 03:04$ \! f. `3 J0 ?% c  a
多谢关注。. N) I0 c' f" E$ w2 J! E
规模还比较大,一个至少3万*3万的二维浮点复数矩阵,用一个4000点复数矢量对矩阵的每一个3万 ...
% Q  p' O6 W; V+ L. k; r
你在 Octave 跑出来的速度是多少?没有具体数据的话能不能说一下数量级上大致在哪里?  g1 u: H* _; C- {$ }: p

/ w8 j# _6 h4 X, H2 O+ e/ U另外,你在 Octave 上的测试是按实际数据量跑的吗?我大概估计了一下,如果我没有算错,你那个二维浮点复数矩阵的数据量大约240TB(1 billion elements, each element has 30000x8 bytes)。这么大的数据量不可能全都放进内存中准备好,(事实上,它们已经不是一块硬盘可以装得下的了,放在磁盘阵列上吗?)有可能计算机的I/O吞吐性能也成为影响真正计算速度的一个重要因素。
回复 支持 反对

使用道具 举报

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

GMT+8, 2024-5-21 07:31 , Processed in 0.030610 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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