zlfeng83 / java-statistical-analysis-tool

Automatically exported from code.google.com/p/java-statistical-analysis-tool
0 stars 0 forks source link

AMD Aparapi Support #5

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
hello you have done good job.
But it would be good if you made AMD Aparapi support.
Take a look at here:
http://developer.amd.com/tools-and-sdks/heterogeneous-computing/aparapi/

Original issue reported on code.google.com by kadir.ba...@gmail.com on 20 Oct 2013 at 8:45

GoogleCodeExporter commented 9 years ago
I have looked at Aparapi before, and it does seem promising. However, current 
code requirements for using Aparapi are somewhat unwieldy. This would 
complicate the code of JSAT. Java 8 should resolve a lot of these issues 
though. 

Also, most of the Algorithms in JSAT would not benefit from the type of 
parallelism GPU acceleration would provide. This is mostly restricted to very 
heavy >= O(n^2) algorithms, and would require significant improvements to 
several of the matrix decompositions in JSAT. 

There are also concerns with the current handling of non-trivial functions, 
64bit floating point, and branching performance on most GPUs (whether using 
CUDA or OpenCL). Some of Nvidia's recent GPUs partially address this issue, but 
I do not have one of them to test on. I would likely need outside assistance in 
providing the appropriate range of GPUs to test on. 

Including Aparapi at this point is simply too much work for too little gain. 
Though I would like to investigate it again once Java 8 comes out (and they 
update to it), and preferably after more details about Oracle's involvement in 
the HSA intermediate language are released / finalized.  

At that point, if I can add Aparapi support in a way that allows for it to be 
an optional addition to JSAT, and it provides a performance boost for enough 
algorithms / enables the use of previously impractical algorithms, I will 
include it. 

Original comment by eraf...@gmail.com on 20 Oct 2013 at 10:02