I don't think anyone has been working on this.

Note also that J's arrays are built on a C infrastructure where a pair
of one dimensional arrays (shape and data) represent an arbitrary
dimensioned J array.

That said... how hard do you think it would be to implement the rank
conjunction? (Rank might be better thought of as using two dimensions
for the underlying data - frame and cells.)

Anyways, it sounds like a fun project...

Thanks,

-- 
Raul



On Sun, Sep 20, 2015 at 3:20 PM, 'Pascal Jasmin' via Programming
<programm...@jsoftware.com> wrote:
> My short question is has anyone already started a project binding Arrayfire 
> library to J... even if it is only partially complete?
>
> Arrayfire is an open source C++ library with c ffi, with multiplatform 
> binaries for easy start, that supports acceleration of functions on GPU and 
> CPU (multithreading).  It includes openBLAS (linear algebra) and boost.  
> Intel Nvidia and AMD GPUs are all transparently supported (as low as HD4000 
> intel).  Recent AMD and (less recent) intel CPUs also have opencl backends 
> (older amd APUs still have GPU acceleration), but afaiu, boost and blas 
> backends are fallbacks that may help.
>
> Its interface is also almost entirely array processing, with many 1:1 
> mappings to J primitives.  There's no locks/manual thread 
> management/semaphudges...
>
> On my system, there is a 5-9x speedup of (their) opencl benchmarks compared 
> to 4 core paralel CPU threads for FFT.  Up to 18Gflops.
>
> This seems like a viable write once, run anywhere parallelization platform 
> for J.
>
> Development process (similar to the openssl BN library I made, that I'm 
> pleased with):
>
> write/take a J function,
> reimplement using ArrayFire calls, or a mix of J and AF calls to avoid 
> calling overhead.
> Optimize the new function with J reference function for testing
>
> Also from BN experience, J is very good at transforming arrays of pointers, 
> and can be used tacitly, and so even if AF is not the ideal array language, 
> it will be very familiar to J, and suitable to J manipulation and ease of 
> calling.
>
> Boost has a ton of utilities.  I'm not positive that AF exposes all of these 
> directly, but it can be built form source. (Timers that would work in 
> console, JHS and iOS come to mind)
>
> http://www.arrayfire.com/docs/group__func__categories.htm
>
> even has iota :P
>
> http://www.arrayfire.com/docs/group__data__func__iota.htm
>
> shape is limited to 4 dimensions apparently, but there is reshape (perhaps 
> all arrays in AF are 4d with trailing 1 dimensions, but that is still easy to 
> convert)
>
> http://www.arrayfire.com/docs/group__manip__func__tile.htm
>
> In terms of key functions for J interface,
>
> I'd guess that if af_write_array and af_get_data_ptr can work with J, then 
> the whole library should be accessible and useful.
>
> http://www.arrayfire.com/docs/group__method__mat.htm
>
>
> Long term, because its open source, adding native J datatypes or JDo commands 
> that process the arrays without copying them over to the calling J instance, 
> could be easy enough to add?
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to