要是用GPU来加速遥感数据方面的话,这个过程是自己编码还是直接用别人弄好的开源库优化下就好了呢? 我要是想通过这块来练习C++可行吗? 懂行的知道这块大的互联网公司需要吗?
看过一篇文章介绍过cpu与gpu, gpu内部大部分是计算核心,控制核心很少,cpu则两者都要兼顾, 所以gpu的功能比较单一,但是运算处理能力比cpu强很多. java毕竟也是有个虚拟机jvm, 运行效率不如c和c++. 如果用java来设计gpu的程序,估计速度方面 会有点麻烦吧.
不知道版主什么情况,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来学习。
[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编程必然是趋势,因为这个问题的关键其实是并行计算的领域。 所以Java必然需要GPU的开发库,只是时间问题罢了
在网上搜了些资料,似乎GPU编程被C语言霸占着,还有什么CUDA啥的。 希望对GPU编程有研究的同学不吝赐教: 1. GPU编程应用在哪些领域? 2. 说是CUDA平台将支持C++,FORTRAN,JAVA未来是否会像这方面扩展。 要是知道GPU其它方面的内容,也可以给大家聊聊哈~ (本讨论不涉及语言之争)
GPU这种跟硬件关联这么紧密地,JAVA就算能支持,目前性能效率也肯定远远比不上C.
比较流行的是open cl吧,没有这方面的经验,帮顶。
23,404
社区成员
70,593
社区内容
加载中
试试用AI创作助手写篇文章吧