问题标签 [aparapi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java/Open CL/Aparapi:从哪个设备可以期待什么样的性能?
为了大致了解 openCl 对我有多大帮助,我对矩阵-矩阵乘法进行了测试,因为这种基本的线性代数将是我的主要用途。我使用的代码可以在这里找到:http: //vasanthexperiments.wordpress.com/2011/11/20/aparapi-java-matrix-multiplication-example/。(1024*1024 x 1024*1024 矩阵-矩阵乘积)
基本上,我对结果感到非常失望,因为与 CPU 上的串行计算(小于 x2)相比,加速只是微不足道,如果我让 Aparapi 使用 CPU(它确实并行化),CPU 甚至更快。
在执行过程中,显卡处于满载状态,所以我认为应该没有通信问题。
我的硬件配置:
i7 2670QM
AMD 7610M
16GB RAM
由于我对 GPGPU 完全陌生,我不知道会发生什么。
1.我的设置有可能被搞砸了吗?如果是这样,我应该在哪里看?
2. 还是我对入门级显卡的期望过高?如果是这样,不同型号的显卡如何应对这种问题?如果我想获得更快的硬件,我必须寻找哪些规格?
编辑:
好的,所以我只是用 10x10 矩阵重新运行程序。
不出所料,CPU 需要的时间不到 1 毫秒。
但是,GPU需要1600多,所以肯定是Aparapi或openCL或我的硬件有问题(驱动程序应该是最新的)。有人知道我应该在哪里看吗?
java - Aparapi 可以使用 Java 8 处理字符串吗?
我正在学习将 Aparapi 与 Java 8 一起使用,因此 GPU 可用于加速我的应用程序,但我想知道 Aparapi 是否可以处理字符串处理。
例如,如果我有 10,000 个文件要处理,而我的应用程序需要读取文本并遍历每一行以提取和解析浮点数,然后进行一些计算并将结果存储在某个位置,例如哈希图、列表或数组,当我使用多个线程时,我的 CPU 以接近 100% 的速度运行,并且运行了将近一个小时才能完成工作。
我的应用程序能否从 Aparapi 和 Java 8 中受益,以便为 GPU 分配一些计算?我知道它可以做 [ + - * / ],但 Aparapi 可以做以下事情:
java - 如何查看 Aparapi 生成的 OpenCL 代码
我让 Aparapi 将 Java 代码翻译成 OpenCL。但是我想知道如何查看生成的 OpenCL 代码。该网站说“通过在启动 JVM 时将 -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true 添加到命令行”。作为这项技术的新手,我不确定您究竟如何做到这一点?任何人都可以通过详细说明这个过程来帮忙吗?
新增部分:
谢谢你。但是在hadoop的情况下我该怎么办?我正在尝试为我以这种方式运行的 hadoop 程序生成 OpneCL 代码:
hadoop jar .java
我曾尝试在 jar 字之前和之后添加 -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ,但均无效。这是我得到的。
线程“主”java.io.IOException 中的异常:打开作业 jar 时出错:-Dcom.amd.aparapi.enableShowGeneratedOpenCL=true at org.apache.hadoop.util.RunJar.main(RunJar.java:90) 原因:java .io.FileNotFoundException: -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true (没有这样的文件或目录) 在 java.util.zip.ZipFile.open(Native Method) 在 java.util.zip.ZipFile.(ZipFile.java: 215) 在 java.util.zip.ZipFile.(ZipFile.java:145) 在 java.util.jar.JarFile.(JarFile.java:153) 在 java.util.jar.JarFile.(JarFile.java:90)在 org.apache.hadoop.util.RunJar.main(RunJar.java:88)
java - Aparapi 多次 put/get 似乎没有效果
通过使用 Aparapi 的显式缓冲区管理,我遇到了一个问题。此后的代码显示我正在尝试管理多个 put/get 循环以从 GPU 刷新/取回数据。似乎第一个put和get已经完成,但不是其他的。
所以我的问题是:
- 如何强制更新已放入 GPU 内存的大型缓冲区?
- 为什么,当我使用隐式缓冲区管理运行这段代码时,会抛出 SIGSEV ?
我认为这不是与 GPU 内存容量相关的问题(在我的情况下为 2GB 内存,而应用程序只是放了 2000*20*4 + 2000*4 = 168KB)我使用的是 CUDA 架构。仅供参考,该程序在 JTP 模式下运行时通过。
提前致谢 !
编辑:我忘了提到我正在使用 svn/trunk/Downloads 中可用的“Aparapi_2014_04_29_Linux64”版本。
似乎使用 2D Java 原始数组时出现了问题。我使用 1D Java 原始数组重写了相同的算法,而且效果很好...有什么想法吗?
java - 用于复杂对象的普通 Java 线程池与 Aparapi GPU
我正在评估是否为我的程序使用带有四核处理器的 Java 线程池或 Aparapi GPU 框架。
虽然 GPU 的增益会很好,但四核处理器和 GPU 之间的速度差异并不是算法的淘汰标准。另一方面,我的程序结构非常好,包含很多复杂的对象——如果我理解正确的话——Aparapi 不支持原始数据类型之外的并行化。
对于那些对复杂对象的两种方法都有经验的人,您会建议将对象重构为 Aparapi 的原始数据类型还是坚持使用 Java 线程池?我是否正确理解对于 Java 线程池,它可以处理的对象类型没有限制?
java - 未复制 Aparapi 缓冲区值
我遇到以下问题OpenCL platform(在 Intel HD 4000 上运行),当我用值填充内核内部的缓冲区时,buf[getGlobalId()] = getGlobalId()一些值没有从设备复制回主机。而不是[0, 1,2,3,4...]有时我得到[0,0,0,3,4,...].
我尝试localBarrie在内核末尾添加 r 和显式缓冲区处理,但没有得到预期的结果。当我将执行模式设置为 CPU 时一切正常,有人知道这种行为的任何原因吗?
java - Aparapi GPU 执行速度比 CPU 慢
我正在尝试测试 Aparapi 的性能。我看过一些博客,结果表明 Aparapi 在进行数据并行操作时确实提高了性能。
但我无法在我的测试中看到这一点。这就是我所做的,我写了两个程序,一个使用 Aparapi,另一个使用普通循环。
计划 1:在阿帕拉皮
程序 2:使用循环
程序 1 大约需要 330 毫秒,而程序 2 只需要大约 55 毫秒。我在这里做错了吗?我确实打印出了Aparpai程序中的执行模式,它打印出执行模式是GPU
opencl - aparapi OpenCLDevice.best() 返回 null
我正在尝试玩 aparapi,但我什至还没有开始。试图从https://vasanthexperiments.wordpress.com/2011/11/20/aparapi-java-matrix-multiplication-example/#comments这个代码,但执行后我得到:“
2016 年 2 月 2 日晚上 8:12:30 com.amd.aparapi.KernelRunner warnFallBackAndExecute 警告:为 AparapiMatMul 类恢复到 Java 线程池 (JTP):GPU 请求无法兑现 OpenCLDevice.best() 返回 null
什么是故障排除步骤,真的没有运气谷歌搜索。我安装了最新的催化剂和 amd sdk,我的车是 radeon hd 6950。
java - 在 Windows 上使用 Oracle Java 开发工具包中的 aparapi jar 运行 GPUGalaxySim.java 的问题
我已经编写了一个程序来进行一些计算以显示一个星系。我想在 jdk 命令提示符下运行它,但我得到了这个错误。用 aparapi 编译程序工作正常。当我尝试运行它时,我得到了这个:

顺便说一句,在我编译它之后,我得到了很多文件,它们是:
如您所见,api 库位于不同的文件夹中。
我写的命令是这两个:
1)javac -g -cp ..\dist_windows_x86_64\aparapi.jar;. GPUGalaxySim.java
2)java -cp ..\dist_windows_x86_64\aparapi.jar;. -Djava.library.path=..\dist_windows_x86_64 GPUGalaxySim
当然,这些命令是在我转到包含您可以在图片中看到的文件的文件夹之后编写的,称为 dist_x86_64。
请帮忙
