【讨论】大家对GPU编程怎么看,JAVA在这方面似乎力有不逮?

oh_Maxy 2014-02-11 10:09:11
加精
在网上搜了些资料,似乎GPU编程被C语言霸占着,还有什么CUDA啥的。
希望对GPU编程有研究的同学不吝赐教:
1. GPU编程应用在哪些领域?
2. 说是CUDA平台将支持C++,FORTRAN,JAVA未来是否会像这方面扩展。


要是知道GPU其它方面的内容,也可以给大家聊聊哈~

(本讨论不涉及语言之争)
...全文
6344 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
CplusEx 2015-03-17
  • 打赏
  • 举报
回复
最近在做GPU硬件加速,视频编解码。用GPU来加速数据处理,效果立竿见影非常明显。这几天在公司天天测试AMD,和Nvidia CUDA SDK,以及修bug。如果要研究算法或者训练编程什么的话,其实不推荐学习GPU编程,还是学好CPU编程吧,到时候要是工作用到的话再看也不迟。另外具体到开发这方面,资料不多,最好是深入阅读源代码,调试,和看AMD以及CUDA的官方文档。
dream0138 2014-04-01
  • 打赏
  • 举报
回复
#22 这说的哇凉啊.....
朗晴 2014-03-17
  • 打赏
  • 举报
回复
过路,参观。
oh_Maxy 2014-03-17
  • 打赏
  • 举报
回复
引用 20 楼 dream0138 的回复:
要是用GPU来加速遥感数据方面的话,这个过程是自己编码还是直接用别人弄好的开源库优化下就好了呢? 我要是想通过这块来练习C++可行吗? 懂行的知道这块大的互联网公司需要吗?
虽然没用C++开发过,感觉通过GPU来练习C++能力,不如做做算法题实在。
oh_Maxy 2014-03-17
  • 打赏
  • 举报
回复
引用 19 楼 printblocks 的回复:
看过一篇文章介绍过cpu与gpu, gpu内部大部分是计算核心,控制核心很少,cpu则两者都要兼顾, 所以gpu的功能比较单一,但是运算处理能力比cpu强很多. java毕竟也是有个虚拟机jvm, 运行效率不如c和c++. 如果用java来设计gpu的程序,估计速度方面 会有点麻烦吧.
现在性能问题对java的影响越来越小了。java可能不会自己实现一套GPU处理逻辑,最有可能提供一套接口,供大家调用(不同厂商,甚至不同语言)。就像数据库实现。
dream0138 2014-03-16
  • 打赏
  • 举报
回复
要是用GPU来加速遥感数据方面的话,这个过程是自己编码还是直接用别人弄好的开源库优化下就好了呢? 我要是想通过这块来练习C++可行吗? 懂行的知道这块大的互联网公司需要吗?
printblocks 2014-03-14
  • 打赏
  • 举报
回复
看过一篇文章介绍过cpu与gpu, gpu内部大部分是计算核心,控制核心很少,cpu则两者都要兼顾, 所以gpu的功能比较单一,但是运算处理能力比cpu强很多. java毕竟也是有个虚拟机jvm, 运行效率不如c和c++. 如果用java来设计gpu的程序,估计速度方面 会有点麻烦吧.
孤影品茗 2014-03-13
  • 打赏
  • 举报
回复
引用 14 楼 u012518802 的回复:
不知道版主什么情况,GPU没想的那么神秘,只是入门的话很简单。语法很基础,也没什么高级的技术什么的。 就目前来看在并行运算CPU在短时间赶不上GPU,其实2个侧重点不同,GPU侧重通用计算。 GPU程序可以同时处理多个数据,数据内容不同,但是对数据处理的方式相同。 在处理图像(也可以是任意数据)的时候,CPU只能一个点一个点的处理, GPU是同时处理很多个点(具体多少由GPU硬件决定)。这样在图像处理速度上远快与CPU。 这是一段GPU程序(只是像素着色器部分),简单的把RGB色变成亮度信息: float4 PS(float2 tex : TEXCOORD0) : COLOR { float4 color = tex2D( Tex0S, tex ); float h = 0.3f * color.x + 0.59f * color.y + 0.11f * color.z; return float4( h, h, h, 0.0f ); } 程序编译在DX上用D3DXCreateEffectFromFile来编译。 建议lz可以下个rendermonkey来学习。
目测业内人士啊
u013915456 2014-03-12
  • 打赏
  • 举报
回复
引用 15 楼 u013915456 的回复:
[quote=引用 14 楼 u012518802 的回复:] 不知道版主什么情况,GPU没想的那么神秘,只是入门的话很简单。语法很基础,也没什么高级的技术什么的。 就目前来看在并行运算CPU在短时间赶不上GPU,其实2个侧重点不同,GPU侧重通用计算。 GPU程序可以同时处理多个数据,数据内容不同,但是对数据处理的方式相同。 在处理图像(也可以是任意数据)的时候,CPU只能一个点一个点的处理, GPU是同时处理很多个点(具体多少由GPU硬件决定)。这样在图像处理速度上远快与CPU。 这是一段GPU程序(只是像素着色器部分),简单的把RGB色变成亮度信息: float4 PS(float2 tex : TEXCOORD0) : COLOR { float4 color = tex2D( Tex0S, tex ); float h = 0.3f * color.x + 0.59f * color.y + 0.11f * color.z; return float4( h, h, h, 0.0f ); } 程序编译在DX上用D3DXCreateEffectFromFile来编译。 建议lz可以下个rendermonkey来学习。
哥们你说反了GPU和CPU。[/quote] 卧槽是我眼花了。。
u013915456 2014-03-12
  • 打赏
  • 举报
回复
引用 14 楼 u012518802 的回复:
不知道版主什么情况,GPU没想的那么神秘,只是入门的话很简单。语法很基础,也没什么高级的技术什么的。 就目前来看在并行运算CPU在短时间赶不上GPU,其实2个侧重点不同,GPU侧重通用计算。 GPU程序可以同时处理多个数据,数据内容不同,但是对数据处理的方式相同。 在处理图像(也可以是任意数据)的时候,CPU只能一个点一个点的处理, GPU是同时处理很多个点(具体多少由GPU硬件决定)。这样在图像处理速度上远快与CPU。 这是一段GPU程序(只是像素着色器部分),简单的把RGB色变成亮度信息: float4 PS(float2 tex : TEXCOORD0) : COLOR { float4 color = tex2D( Tex0S, tex ); float h = 0.3f * color.x + 0.59f * color.y + 0.11f * color.z; return float4( h, h, h, 0.0f ); } 程序编译在DX上用D3DXCreateEffectFromFile来编译。 建议lz可以下个rendermonkey来学习。
哥们你说反了GPU和CPU。
副组长 2014-03-12
  • 打赏
  • 举报
回复
CUDA只支持N卡,不会有太大前途。 OpenCL学和用起来都还不太那么象回事儿,非常不喜欢。 微软的C++AMP新推不久,N卡A卡都支持。好学好用上手快。缺点是不能跨平台,性能也没实际测试过。不用LINUX的可以试试。
oh_Maxy 2014-03-11
  • 打赏
  • 举报
回复
引用 11 楼 pilifischy 的回复:
实际上GPU编程必然是趋势,因为这个问题的关键其实是并行计算的领域。 所以Java必然需要GPU的开发库,只是时间问题罢了
应该还是侧重图形处理吧?并行计算,CPU无法实现么?
朗晴 2014-03-11
  • 打赏
  • 举报
回复
pkitoria 2014-03-11
  • 打赏
  • 举报
回复
实际上GPU编程必然是趋势,因为这个问题的关键其实是并行计算的领域。 所以Java必然需要GPU的开发库,只是时间问题罢了
张平凡游戏 2014-03-11
  • 打赏
  • 举报
回复
不知道版主什么情况,GPU没想的那么神秘,只是入门的话很简单。语法很基础,也没什么高级的技术什么的。 就目前来看在并行运算CPU在短时间赶不上GPU,其实2个侧重点不同,GPU侧重通用计算。 GPU程序可以同时处理多个数据,数据内容不同,但是对数据处理的方式相同。 在处理图像(也可以是任意数据)的时候,CPU只能一个点一个点的处理, GPU是同时处理很多个点(具体多少由GPU硬件决定)。这样在图像处理速度上远快与CPU。 这是一段GPU程序(只是像素着色器部分),简单的把RGB色变成亮度信息: float4 PS(float2 tex : TEXCOORD0) : COLOR { float4 color = tex2D( Tex0S, tex ); float h = 0.3f * color.x + 0.59f * color.y + 0.11f * color.z; return float4( h, h, h, 0.0f ); } 程序编译在DX上用D3DXCreateEffectFromFile来编译。 建议lz可以下个rendermonkey来学习。
teemai 2014-03-10
  • 打赏
  • 举报
回复
首页上还有一篇对GPU编程的讨论,不过知之甚少。 参与下,看看各位的回复。 http://bbs.csdn.net/topics/390727683
木犀花香 2014-03-10
  • 打赏
  • 举报
回复
引用 楼主 oh_Maxy 的回复:
在网上搜了些资料,似乎GPU编程被C语言霸占着,还有什么CUDA啥的。 希望对GPU编程有研究的同学不吝赐教: 1. GPU编程应用在哪些领域? 2. 说是CUDA平台将支持C++,FORTRAN,JAVA未来是否会像这方面扩展。 要是知道GPU其它方面的内容,也可以给大家聊聊哈~ (本讨论不涉及语言之争)
不太清楚啊,我一直都是用C在写的。JAVA不是封装过部分openGL吗?
oh_Maxy 2014-03-10
  • 打赏
  • 举报
回复
引用 5 楼 antony0203 的回复:
GPU这种跟硬件关联这么紧密地,JAVA就算能支持,目前性能效率也肯定远远比不上C.
嗯,目前确实是这样。 JAVA暂时没有提供GPU编程的API
antony0203 2014-03-10
  • 打赏
  • 举报
回复
GPU这种跟硬件关联这么紧密地,JAVA就算能支持,目前性能效率也肯定远远比不上C.
hexingfusaipao 2014-03-10
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
比较流行的是open cl吧,没有这方面的经验,帮顶。
open cl好像跟open gl、dx差不多吧,但是GPU编程应该跟这个不是在同一层面的,在这些的下一层吧!
加载更多回复(5)

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧