xiangyu / aparapi

Automatically exported from code.google.com/p/aparapi
Other
0 stars 0 forks source link

Dump modified Java bytecode #162

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Since part of original bytecode will be translated to OpenCL kernel, the rest 
part  should be modified to communicate with OpenCL runtime. Is it possible to 
dump a Java bytecode that modified by Aparapi?

Original issue reported on code.google.com by comaniac...@gmail.com on 7 Mar 2015 at 12:34

GoogleCodeExporter commented 9 years ago
I am not sure I understand the question/suggestion.  

Aparapi does not modify the bytecode it merely scans it to create OpenCL and to 
determine access patterns in the code.  

You can dump the generated OpenCL with  
   -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true

You can also dump an 'annotated view' of the bytecode as it is being scanned 
via 
   -Dcom.amd.aparapi.enableInstructionDecodeViewer=true

What 'specifically' are you looking for?

Gary

Original comment by frost.g...@gmail.com on 11 Mar 2015 at 4:57

GoogleCodeExporter commented 9 years ago
Thanks for your reply. 
Sorry I think I misunderstood some concepts about its execution flow. The part 
that I want to extract is the OpenCL host embedded in Aparapi. Specifically, my 
expectation is to acquire both "host" and "kernel" files from Aparapi so that I 
can execute kernel without original user application.

Original comment by comaniac...@gmail.com on 11 Mar 2015 at 5:07

GoogleCodeExporter commented 9 years ago
Ah -

So you can get the OpenCL from 
   -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true

Sadly you can't get the C/C++ host code for dispatching.  

I toyed with the idea of spitting out C++/C host code (or at least a 
representation of it) for dispatch at one time, but abandoned it.  The 
generated code required too much knowledge of the Java data layout to be useful 
outside of a Java application. 

The JNI verbose output flag is probably the best you can do (actually will help 
you a lot) if you can ignore all the logging that gets generated. 

-Dcom.amd.aparapi.enableVerboseJNI=true

This would not be hard to do, if you wanted to poke around in the code.  Most 
of what you want is probably just sent to stderr when logging is turned on.  

Gary

Original comment by frost.g...@gmail.com on 11 Mar 2015 at 5:57

GoogleCodeExporter commented 9 years ago
Thanks for your suggestion. It helps me a lot!

Original comment by comaniac...@gmail.com on 12 Mar 2015 at 5:20