Pascal - I have a i7-3520M with an integrated Intel HD 4000 (on a lenovo laptop). Nothing special I think. I agree it's an unconventional opencl usage. I'm thinking it may be fun to try and write a simple game and use the byte code as the language and opencl as the game loop. The input to the loop would be the loop code, pressed keys, and possibly some other state and the output would be a frame to draw. I'm thinking outputting the image frame with something like glpixels http://jsoftware.2058.n7.nabble.com/about-glpixel-or-glpixels-td6030.html
Bill, thanks for the and suggestion on ints. I intended to go that route so thanks for jump starting me in that direction. On Mon, Nov 16, 2015 at 7:56 PM, bill lam <[email protected]> wrote: > signature of some opencl api contains l (64-bit integer) but J32 does not > support l, so I use a hack to pass an integer as a 64-bit double. J64 does > not need this hack, so that it can use l and i2d is not needed. Changing > all d to l in signatures _and_ i2d to ] for J64. Or just keeping them if > you don't want different branches for J32 and J64. > > In you bytecode interpreter, integers can be used instead of float, you can > use write another > > clEnqueueReadBuffer_i=: (libopencl,' clEnqueueReadBuffer > i x x i x x *i i > *x *x')&cd > > similarly for clEnqueueWriteBuffer_i > > opencl should be available in all platforms where J can run, perhaps except > raspberry pi. > On Nov 17, 2015 5:41 AM, "Joe Bogner" <[email protected]> wrote: > >> bill, this is fantastic. >> >> my machine (windows 7 / x64) already had a opencl.dll on it, which means >> without any additional installation I was able generate C-like code and get >> incredible performance. TCC does not generate optimized code compared to >> gcc / msvc and requires an installation. >> >> I was able to port a minimal example of my bytecode machine to your opencl >> helper. More work to do, but preliminary results run 500,000 iterations in >> 0.071398 seconds compared to 8.88937 seconds for my tacit version. >> >> Here's the crude start of it: >> https://gist.github.com/joebo/f2db81090ef531e856c4 >> >> Compared to my >> >> http://code.jsoftware.com/wiki/User:Joe_Bogner/ByteCodeInterpreter#Tacit_Literate.2C_TDD_Version >> >> >> >> On Mon, Nov 16, 2015 at 12:20 PM, Joe Bogner <[email protected]> wrote: >> >> > I was also thinking it reminded me of TCC. I am downloading the opencl >> > drivers now to play >> > >> > Here's some work I did on TCC awhile back: >> > >> > https://github.com/joebo/lang-lab/blob/master/j/tcc.ijs >> > >> > http://www.jsoftware.com/pipermail/chat/2015-February/006490.html >> > >> > >> > On Sun, Nov 15, 2015 at 11:34 PM, 'Pascal Jasmin' via Programming < >> > [email protected]> wrote: >> > >> >> no other changes than linking to opencl.dll works on windows. >> >> changing i2d =: ] segfaults. >> >> >> >> Looks like an interesting approach overall. Complete control of opencl >> >> programs from J. It looks like considerable work to automate out the >> >> repetition, but I can almost see how to write C code from J templates. >> The >> >> work would also be useful for TCC dynamic compilation. >> >> >> >> >> >> >> >> >> >> >> >> ----- Original Message ----- >> >> From: bill lam <[email protected]> >> >> To: Programming forum <[email protected]> >> >> Cc: >> >> Sent: Sunday, November 15, 2015 6:33 PM >> >> Subject: Re: [Jprogramming] opencl on android >> >> >> >> you should link to opencl.dll, the others are icd (installable client >> >> driver). you can select vendor devices by twisting the first 2 lines, >> >> clGetPlatformIDs 1; (platform=. ,_1); <<0 >> >> clGetDeviceIDs ({.platform); ({.@i2d _1); 1; (dev=. ,_1); <<0 >> >> >> >> icd does not apply to android because google had killed official support >> >> of >> >> opencl in favor of his own renderscript, so that developers have to link >> >> to >> >> actual vendor's driver. >> >> > just replace every d with l >> >> >> >> You mean function signature parameters d with l?... seems like a >> >> surprising >> >> substitution. >> >> >> >> On windows, I have opencl.dll in system32 and system. And also have >> >> various versions of amd_opencl(32/64).dll. Do I just link to just >> >> opencl.dll, and it will magically delegate to the right vendor's >> >> implementation? >> >> >> >> >> >> >> >> >> >> ----- Original Message ----- >> >> From: bill lam <[email protected]> >> >> To: 'Pascal Jasmin' via Programming <[email protected]> >> >> Cc: >> >> Sent: Sunday, November 15, 2015 2:37 AM >> >> Subject: Re: [Jprogramming] opencl on android >> >> >> >> Location of library depends on platform. It think it should work >> >> on J32. It is simpler on J64, just replace every d with l and >> >> change i2d to ] . >> >> >> >> In desktop, both CPU and GPU can provide devices, you may to >> >> want to specify CPU or GPU in getting the device ID. >> >> >> >> Вс, 15 ноя 2015, jprogramming написал(а): >> >> > haven't tested on android yet, but it doesn't work on windows... I >> guess >> >> intentionally. >> >> > >> >> > Would the signatures be the same (or very close) on desktops... just >> the >> >> library locations different? >> >> > >> >> > ________________________________ >> >> > From: bill lam <[email protected]> >> >> > To: jprogramming <[email protected]> >> >> > Sent: Sunday, November 15, 2015 1:27 AM >> >> > Subject: [Jprogramming] opencl on android >> >> > >> >> > >> >> > A demo script for running opencl on android, it should ouput >> >> > 1 0 or 1 delta. >> >> > >> >> > Note that google does not want to you to run opencl on android >> >> > so that this script may not work even if your android device >> >> > is the newest flagship model. Search for "opencl" in google play >> >> > for some apps that can check for opencl capability. >> >> > >> >> > Please report if your devices support opencl but this script failed. >> >> > >> >> > >> >> > -- >> >> > regards, >> >> > ==================================================== >> >> > GPG key 1024D/4434BAB3 2008-08-24 >> >> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >> >> > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >> >> > >> >> > ---------------------------------------------------------------------- >> >> > For information about J forums see >> http://www.jsoftware.com/forums.htm >> >> > ---------------------------------------------------------------------- >> >> > For information about J forums see >> http://www.jsoftware.com/forums.htm >> >> >> >> >> >> >> >> -- >> >> regards, >> >> ==================================================== >> >> GPG key 1024D/4434BAB3 2008-08-24 >> >> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >> >> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >> >> ---------------------------------------------------------------------- >> >> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> >> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> >> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> >> For information about J forums see http://www.jsoftware.com/forums.htm >> >> >> > >> > >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
