我應該在Java中使用什麼API來支持OpenCL。我應該爲OpenCL for Java使用什麼API
我想知道的,是最適合表現
- JavaCL
- Aparapi(AMD提供的API)
- JOCL
是否需要JavaCL爲Java字節碼轉換成的OpenCL或者僅僅是Aparapi(API提供的API)就可以做到。
我應該在Java中使用什麼API來支持OpenCL。我應該爲OpenCL for Java使用什麼API
我想知道的,是最適合表現
是否需要JavaCL爲Java字節碼轉換成的OpenCL或者僅僅是Aparapi(API提供的API)就可以做到。
據我所知,Aparapi是唯一提供從字節碼中自動轉換OpenCL的框架。 RootBeer爲CUDA提供了一個類似的選項。
您可能會發現WRT性能如果您準備好手動調整OpenCL和/或知道如何利用OpenCL的某些更高級功能(本地內存,向量指令,重疊傳輸/重傳功能),JavaCL或JOCL將提供更多性能機會。調度)。
特別是如果你有你想申請多個OpenCL內核(在管道中說的),你可以更容易地減少主機和GPU與JOCL/JavaCL之間的緩衝區傳輸。阿帕拉皮在這裏缺乏一些靈活性。
不過,我希望(和觀察到),其性能最「簡單」的算法是這三個框架之間非常相似。
我的建議(完全公開我是Aparapi的發明人/最初的貢獻者)將嘗試Aparapi,如果你發現自己想調整生成的OpenCL(Aparapi將允許你列出它生成的代碼)或找到你想嘗試重疊的緩衝區/傳輸或多內核調度,當你獲得更多的經驗時,你總是可以切換到JOCL/JavaCL。