首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aparapi能用Java 8处理字符串吗?

Aparapi能用Java 8处理字符串吗?
EN

Stack Overflow用户
提问于 2014-03-22 22:30:27
回答 2查看 570关注 0票数 1

我正在学习如何在Java 8中使用Aparapi,这样GPU可以用来加速我的应用程序,但我不知道Aparapi是否能够处理字符串处理。

例如,如果我有10,000个文件要通过,我的应用程序需要读取文本,遍历每一行来提取和解析浮点数,然后进行一些计算,并将结果存储在某个地方,比如hashmap、列表或数组,那么当我使用多个线程时,我的CPU将以接近100%的速度运行,并运行将近一个小时才能完成任务。

我的应用程序能从使用Java 8的Aparapi分配一些计算到GPU吗?我知道它可以做+-*/,但是Aparapi可以这样做:

代码语言:javascript
复制
String lines[]=text.split("\n");
for (int i=0;i<lines.length;i++)
{
  float number=Float.parseFloat(lines[i]);
  number*=2000;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-25 19:40:21

基于OpenCL的Aparapi不能这样做,因为它不能直接处理堆上的对象。我们所能做的最好是将所有字符串状态移动到GPU,方法是将对象编组到连续堆的单个区域(ala ),然后对所有字符串执行并行操作。大多数时候,很难“赢回”marshall+transfer的时间。

HSA启用了Aparapi的lambda分支(仍在工作!)将使您能够在启用HSA的平台上执行此操作。HSA允许直接从GPU (共享虚拟内存)访问Java堆对象。这意味着我们不再需要将数据复制到GPU或从GPU复制。GPU可以直接跟踪对象引用。

仍然不能在GPU上分配(这需要对GC、安全点和deopt处理的一些支持),这是Aparapi之外的。另一方面,苏门答腊是一个OpenJDK项目,能够处理您建议的用例,并允许分配。)它的优点是能够与JVM挂钩;)

票数 2
EN

Stack Overflow用户

发布于 2014-03-24 16:02:11

我想我找到的答案是:

https://github.com/pcpratts/rootbeer1/tree/master/doc rootbeer1_paper.pdf

或者在这里:https://github.com/pcpratts/rootbeer1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22584496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档