CSDN-CSDN社区-CUDA-CUDA编程

收藏 如何计算浮点操作数及内存带宽[问题点数:100,结帖人:lc19890326]

  • lc19890326
  • (考研,CG)
  • 等 级:
  • 结帖率:
楼主发表于:2009-06-29 12:37:19
问题:
1.kernal函数中单独的赋值运算,比如A=B,不算浮点操作吧?

2.是一个等式算一次浮点操作,还是一个加号或者乘号分别算一次浮点操作?
比如S=0.5*(A+B+C+D)算4次浮点操作么?

3.kernal函数中所有的计算等式,包括对global内存 share内存 寄存器的计算操作,都应该计入浮点操作吧?

4.
C/C++ code
数据带宽(GB/s)=矩阵元素数目(NX*NY)*浮点字节数(4)*矩阵个数(2)*迭代次数/(10e9*计算时间) 计算速度(Gflops)=矩阵元素数目(NX*NY)*浮点操作数*迭代次数/(10e9*计算时间)

这里公式中计算时间都用kernal函数的运算时间对不对??
至于迭代次数,我并没有将迭代循环写在kernal函数内部,而是循环调用kernal函数,这样对计算带宽和计算速度有没有什么影响??

5.怎么计算一个显卡的理论GFLOPS?

不好意思,问题有点多,麻烦各位了,结贴时再加100分,谢谢指教
回复次数:14
#1楼 得分:100回复于:2009-06-29 23:04:55
#2楼 得分:0回复于:2009-06-30 12:50:54
引用 1 楼 l7331014 的回复:
4.严格说应该是host上的时间,非GPU上的clock.
kernel的启动要非时间(虽然很少),循环在内部应该更快些.但如果由此导致一个sm上可运行线程/block数减少,另论.

也就是说应该这样计算时间:
C/C++ code
cutStartTimer kernal 调用 cudaThreadSynchronize(); cutStopTimer

这样得出的时间是Host时间,可以作为算数据带宽和计算速度的时间吧?

另外,我的程序一旦将循环放在kernal内部,计算数据量一大就直接不出结果 至今也不只什么原因。

谢谢你的解答,我知道你帮我了N次了,真的非常感谢你
#3楼 得分:0回复于:2009-06-30 13:04:18
忘了问 
如果等式中含有减法除法算几个浮点操作呢?

如A=B/(C-D),算4个浮点操作么?
#4楼 得分:0回复于:2009-06-30 19:17:06
引用 3 楼 lc19890326 的回复:
忘了问 
如果等式中含有减法除法算几个浮点操作呢?

如A=B/(C-D),算4个浮点操作么?


2次吧. (C-D)一次,B/res一次.
#5楼 得分:0回复于:2009-06-30 19:22:41
引用 4 楼 l7331014 的回复:
引用 3 楼 lc19890326 的回复:
忘了问 
如果等式中含有减法除法算几个浮点操作呢?

如A=B/(C-D),算4个浮点操作么?


2次吧. (C-D)一次,B/res一次.


糊涂了,等式3次,A==()一次.
#6楼 得分:0回复于:2009-06-30 19:24:30
引用 2 楼 lc19890326 的回复:
另外,我的程序一旦将循环放在kernal内部,计算数据量一大就直接不出结果 至今也不只什么原因。


vista3秒,xp5秒,linux是否有限制不知道.
显卡驱动有时间显示.
#7楼 得分:0回复于:2009-07-01 18:43:10
十分感谢!明天搞完就来结贴了
顺便问一句 这方面的资料哪里有 说实话我对这个浮点运算和具体程序的处理搞不大清楚 想找个资料系统了解下
#8楼 得分:0回复于:2009-07-01 18:45:33
不好意思 再问一句 CPU的浮点次数计算和GPU的有差别么 ?
#9楼 得分:0回复于:2009-07-01 18:47:56
引用 8 楼 lc19890326 的回复:
不好意思 再问一句 CPU的浮点次数计算和GPU的有差别么 ?


没有区别.
#10楼 得分:0回复于:2009-07-01 18:52:10
引用 7 楼 lc19890326 的回复:
十分感谢!明天搞完就来结贴了
顺便问一句 这方面的资料哪里有 说实话我对这个浮点运算和具体程序的处理搞不大清楚 想找个资料系统了解下


建议看 < <计算机程序设计艺术>>第二卷.大部头,不过很经典.网上有下的.
#11楼 得分:0回复于:2009-07-01 22:59:42
引用 10 楼 l7331014 的回复:
引用 7 楼 lc19890326 的回复:
十分感谢!明天搞完就来结贴了
顺便问一句 这方面的资料哪里有 说实话我对这个浮点运算和具体程序的处理搞不大清楚 想找个资料系统了解下


建议看 < <计算机程序设计艺术>>第二卷.大部头,不过很经典.网上有下的.

我对这本神作保持仰望态度 确实很想拜读 只是现在考研了 外加为了到时候顺利的进图形学教研室 现在正啃图形学和OPENGL 时间巨不够用
哎 真希望一天50个小时啊……
再次对你慷慨相助表示由衷的感谢 !
#12楼 得分:0回复于:2009-07-02 12:47:46
难道结贴不能再加一百分 ??
#13楼 得分:0回复于:2009-07-02 22:20:33
引用 12 楼 lc19890326 的回复:
难道结贴不能再加一百分 ??


能有所帮助就行.呵呵.
#14楼 得分:0回复于:2009-07-07 14:42:04
疑问:

      C语言是汇编语言的简写。在GPU上也是一样的,因此

                + - */
      都不应该是一个浮点计算,比如

              mov ax , ..
            mov bx , ..
            add ax ,bx
            mov .. ,ax
      这么多次计算才叫一个 a + b啊……
     
相关问题
CUDA应用科学计算必备利器-NVIDIA通用计算产品TESLA
即将到来的多核革命:希望、风险及影响(三)
如何书写高效的代码? C/C++ / C语言- CSDN社区community.csdn.net
有10亿个浮点数,从中找出1万个最大的数。
这儿有几个汇编语句不明白其意思,请各位帮忙解释解释。 其他开发语言 ...
这套计算机性能如何?请大家进来看看…… C++ Builder / BCB茶馆- CSDN ...