首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
CUDA
CUDA高性能计算讨论
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
CUDA与一个千年数学问题
[已结帖,结帖人:darkstorm2111203]
加为好友
发送私信
在线聊天
darkstorm2111203
樟树
等级:
可用分等级:
富农
总技术分:
418
总技术分排名:
39962
结帖率:
71.43%
发表于:
2008-04-01 20:33:02
楼主
根据书上说和我的经验,要将CUDA计算发挥到最大,就必须尽量多的使用sharedmemory
有这么一个问题,比如你要将一个矩阵中的各行(共n行)两两间进行处理(科学计算中经常遇到的问题)
如果一个sharedmemory里面只存两行,那么就需要n/2个block,进行n-1次计算
但可能一个sharedmemory里面可以放更多的,比如7行,那么就只需要n/7个block,进行(n-1)/6次计算
这是什么概念呢?两个划分block的方式计算量相同,但是第二种方式的存储器访问可以节省84%,在我的应用中,两种方式性能差距达到了一倍!
这就涉及到一个排列组合问题,千年数学难题:女生散步问题。
15个女生,每天晚上3个一组出去散步,如何分组,使得经过一定次数后,恰好使得每个女生与其他女生散步且只散布一次?
在CUDA的官方例程特征值分解中,在最后的性能提高改进方法中也提到了分组问题,但是没有给出解决方法。
这个问题的计算量是非常大的,事实上,要得出512行的7个一组分组方式如果使用递归回溯方法可能需要几个月。如果可以得到这样一张组合表,无疑对解决CUDA架构下的shared memory利用率问题产生巨大帮助。我的思路是使用神经网络方法或者放宽约束条件,允许数据在一轮组合内被使用数次。
不知诸位在使用shared memory时还有什么好的想法。
问题点数:
20
回复次数:
39
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jack_luck
Bevis
等级:
可用分等级:
贫农
总技术分:
160
总技术分排名:
74075
发表于:
2008-04-02 10:37:39
1
楼 得分:
0
问题很深奥,看来楼主的功底很深哦
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
creazywind
冰*雪 希望有一天我能遇到你
等级:
可用分等级:
贫农
总技术分:
224
总技术分排名:
60334
发表于:
2008-04-02 19:42:58
2
楼 得分:
0
呵呵 不懂 帮顶!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
clw_zxq
寒芦飘絮
等级:
可用分等级:
贫农
总技术分:
37
总技术分排名:
156158
发表于:
2008-04-02 19:52:27
3
楼 得分:
0
好难啊,我不是太清楚,应该有排列组合的公式吧,要不写一个算法,让超级计算机去算吧,呵呵。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jeff_nie
多C多漂亮!
等级:
可用分等级:
掌柜
总技术分:
356
总技术分排名:
44844
发表于:
2008-04-02 20:31:24
4
楼 得分:
0
不懂,还是顶了!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
striker_un
徐兴
等级:
可用分等级:
中农
总技术分:
1738
总技术分排名:
12977
发表于:
2008-04-02 21:37:37
5
楼 得分:
0
很深很奥妙。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
suggyi
suggyi
等级:
可用分等级:
乞丐
总技术分:
20
总技术分排名:
192457
发表于:
2008-04-02 21:50:43
6
楼 得分:
0
有一点点明白,因为是中文的……
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ko0lo0
世界变了
等级:
可用分等级:
贫农
总技术分:
10
总技术分排名:
235121
发表于:
2008-04-02 22:09:46
7
楼 得分:
0
看不懂!!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
mesedavy008
mesedavy
等级:
可用分等级:
贫农
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-03 04:57:25
8
楼 得分:
0
该回复于2008-04-26 14:48:41被版主删除
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
exy337
.net群②:75802779
等级:
可用分等级:
贫农
总技术分:
2484
总技术分排名:
9293
发表于:
2008-04-03 05:42:01
9
楼 得分:
0
UP
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhuyx808
我是男的,CA!
等级:
可用分等级:
富农
总技术分:
2251
总技术分排名:
10338
发表于:
2008-04-03 08:49:21
10
楼 得分:
0
很头痛
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
shuizhilang
shuizhilang
等级:
可用分等级:
贫农
总技术分:
32
总技术分排名:
163938
发表于:
2008-04-03 09:59:41
11
楼 得分:
0
up
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
gxj760998
小猴子
等级:
可用分等级:
富农
总技术分:
1131
总技术分排名:
20353
发表于:
2008-04-03 10:04:17
12
楼 得分:
0
LZ的两个问题是同意类型么??
我怎么觉得第一个是基础性研究,就象1+1 = 2样,
第二个问题明显是算法优化,这种问题的个性非常明显,属于算法优化一类。
我不过一个门外汗,在学校时接触过一点数学方面的知识,出来几年了,用到的不多。
见笑了!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Coder211
BlueGene
等级:
可用分等级:
中农
总技术分:
121
总技术分排名:
86670
发表于:
2008-04-03 10:26:55
13
楼 得分:
0
顶
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
fisher811
大智若鱼
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-03 11:28:59
14
楼 得分:
0
UP
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wgw335363240
rey
等级:
可用分等级:
贫农
总技术分:
61
总技术分排名:
124601
发表于:
2008-04-03 14:42:14
15
楼 得分:
0
UP
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
coy_zhangce
Coy
等级:
可用分等级:
长工
总技术分:
42
总技术分排名:
147828
发表于:
2008-04-03 15:07:40
16
楼 得分:
10
个人认为楼主的观点有点牵强。
对于GPU运算,首先应该考虑的是超轻量的线程,线程越小,单次运算量越少,就越可能发挥并行计算能力。对于采用复杂分组来加快运算,分支检测可能会很多,不一定可取。
其次,512并不是一个很大的数字。512行的数据,显然不会很大。512行分组方式同样不一定很大。但如果我们要算的不是512,而是4096呢?分组方式就会大的很多,而且不一定是线性增长,所以复杂分组应该有点欠考虑。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
guobingz
等级:
可用分等级:
长工
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-03 16:35:42
17
楼 得分:
0
功底很深呀!顶一个
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
HKCID
坏得不够彻底!
等级:
可用分等级:
富农
总技术分:
107
总技术分排名:
93088
发表于:
2008-04-03 16:55:11
18
楼 得分:
5
女生散步问题在70年代还是80年代被意大利的数学家解决了,不过不是通解;通解是我们一个数学家解决的。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
darkstorm2111203
樟树
等级:
可用分等级:
富农
总技术分:
418
总技术分排名:
39962
发表于:
2008-04-04 09:21:09
19
楼 得分:
0
分组交换的顺序可以用固定的查找表记录在globalmemory里,每次只要通过threadid和blockid查找就行了,不存在分支预测
加快gpu运算,恰恰需要增加单次调用__global__ 函数,两次访问global存储器之间的运算量尽量大,也就是增加运算密集度。
在cuda的手册中提高运算性能的章节也有提及,global存储器仍然是gpu运算的瓶颈,nVidia的意见是尽量在block内使用shared memory来进行数据交换。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
xfdydyh
hello Software!
等级:
可用分等级:
短工
总技术分:
8
总技术分排名:
259736
发表于:
2008-04-04 22:58:51
20
楼 得分:
5
18 楼的:我是学数学的,那个问题同matlab能解,而且是所有解.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Q_282898034
我为编程狂
等级:
可用分等级:
长工
总技术分:
3129
总技术分排名:
7232
发表于:
2008-04-05 01:18:48
21
楼 得分:
0
为什么是女生散步,不是男生散步
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
darkstorm2111203
樟树
等级:
可用分等级:
富农
总技术分:
418
总技术分排名:
39962
发表于:
2008-04-05 15:39:51
22
楼 得分:
0
引用 20 楼 xfdydyh 的回复:
18 楼的:我是学数学的,那个问题同matlab能解,而且是所有解.
20楼的兄弟请赐教!我要求一个(518,7,84)的解,条件放宽点也行
不要穷举算法的...用穷举算法做肯定吃不消,工具箱里有什么函数可以调么?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ymle1228
东边的红隼
等级:
可用分等级:
富农
总技术分:
1233
总技术分排名:
17754
发表于:
2008-04-07 09:06:12
23
楼 得分:
0
MACK
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
liaozhiyang
cyclone
等级:
可用分等级:
长工
总技术分:
5
总技术分排名:
274620
发表于:
2008-04-07 10:59:34
24
楼 得分:
0
好深的问题,不懂
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kolkosky
癫狂
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-07 11:43:51
25
楼 得分:
0
这么复杂
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kolkosky
癫狂
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-07 11:47:07
26
楼 得分:
0
12+11+10+9+8+7+6+5+4+3+2+1
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
liuhao1201
等级:
可用分等级:
大地主
总技术分:
64
总技术分排名:
122386
发表于:
2008-04-07 15:09:11
27
楼 得分:
0
mark
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
moses731
等级:
可用分等级:
长工
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-07 17:29:21
28
楼 得分:
0
up only up
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
maning_1986530
等级:
可用分等级:
短工
总技术分:
4
总技术分排名:
297422
发表于:
2008-04-07 20:10:31
29
楼 得分:
0
up!up!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
oliverlee1
等级:
可用分等级:
长工
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-07 22:01:11
30
楼 得分:
0
比较深奥。。。
呵呵
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
szcoder1101
深圳起点
等级:
可用分等级:
长工
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-08 09:54:43
31
楼 得分:
0
该回复于2008-05-14 08:25:01被管理员删除
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Promi
狗尾草
等级:
可用分等级:
富农
总技术分:
101
总技术分排名:
96137
发表于:
2008-04-21 21:29:44
32
楼 得分:
0
up
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cg600
ccc+++
等级:
可用分等级:
中农
总技术分:
133
总技术分排名:
82310
发表于:
2008-04-23 21:39:13
33
楼 得分:
0
六神无主
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
robertkun
UUKUN
等级:
可用分等级:
乞丐
总技术分:
0
总技术分排名:
354156
发表于:
2008-04-25 15:33:00
34
楼 得分:
0
无 语!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
IO_X
IO_X
等级:
可用分等级:
小地主
总技术分:
5711
总技术分排名:
4112
发表于:
2008-04-29 21:11:44
35
楼 得分:
0
避免一些需要两两操作且有序的算法,因为这不适合gpu。
比如在求解线性方程组时,避免用高斯消去法,而是用多重网格法(MG/AMG)+某种迭代(Jacobi/Red-Black G-S...)
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
meiZiNick
三太子
等级:
可用分等级:
贫农
总技术分:
12568
总技术分排名:
1540
发表于:
2008-04-30 19:28:21
36
楼 得分:
0
支持搂主,收藏
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
knowledge_Is_Life
阿凡
等级:
可用分等级:
短工
总技术分:
13777
总技术分排名:
1298
发表于:
2008-05-01 00:57:54
37
楼 得分:
0
我也想了解,谢谢LZ.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
UltraBejing
OneNightInBejin
等级:
可用分等级:
短工
总技术分:
2857
总技术分排名:
8021
发表于:
2008-05-01 06:29:23
38
楼 得分:
0
关注 接分
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
schlafenhamster
schlafenhamster
等级:
可用分等级:
掌柜
总技术分:
5192
总技术分排名:
4512
发表于:
2008-06-26 14:20:47
39
楼 得分:
0
晕,想不明白
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
abc推荐给好友