Accelerating Java using ArrayFire, CUDA and OpenCL

Pavan ArrayFire, JAVA 3 Comments

We have previously mentioned the ability to use ArrayFire through Java. In this post, we are going to show how you can get the best performance inside Java using ArrayFire for CUDA and OpenCL. Code Here is a sample code to perform Monte Caro Estimation of Pi.

The same code can be written using ArrayFire in the following manner.

Array.randu(dims, Array.FloatType) creates a uniform random Array. Array.FloatType is passed in to create a uniform random array of 32 bit floating point numbers. Other types can include Array.FloatComplexType, Array.DoubleType and so on. Array.mul, Array.add and Array.lt perform element wise operations on the two operands to produce an output. Array.sumAll adds up all the elements in the array to produce ...

ArrayFire Capability Update - July 2014

Oded Android, ArrayFire, C/C++, CUDA, Fortran, JAVA, OpenCL, R 1 Comment

In response to user requests for additional ArrayFire capabilities, we have decided to extend the library to have CPU fall back when OpenCL drivers for CPUs are not available. This means that ArrayFire code will be portable to both devices that have OpenCL setup and devices without it. This is done through the creation of additional backends. This will allow ArrayFire users to write their code once and have it run on multiple systems. We currently support the following systems and architectures: NVIDIA GPUs (Tesla, Fermi, and Kepler) AMD's GPUs, CPUs and APUs Intel's CPUs, GPUs and Xeon Phi Co-Processor Mobile and Embedded devices As part of this update process we are also looking at extending ArrayFire capabilities to low power systems such ...

Getting Started with OpenCL on Android

Pradeep Android, JAVA, OpenCL 10 Comments

Mobile devices are carving their niche into the world of computing with more processing power day by day. GPUs on mobile devices have been around for a while, but using them for accelerating computation is still quite new. Until recently, the only way to access the GPU was through OpenGL. Around december 2008, Khronos released OpenCL, a generic API for accelerating non-graphics tasks. OpenCL enables us to take advantage of acceleration hardware. Since it is an open standard, many hardware vendors provide support on their devices. With the recent release of Adreno and Mali SDKs, you can now run OpenCL code on mobile GPUs. Today's post is going to be about how to do image processing on camera feed on ...

Open Source Initiatives from ArrayFire

Pavan Announcements, ArrayFire, CUDA, Fortran, JAVA, Open Source, OpenCL, OpenGL, R Leave a Comment

At ArrayFire we like to use a lot of Free/Open Source software. We use various Linux distributions, Jenkins, Gitlab, gcc, emacs, vim and numerous other FOSS tools on a daily basis. We also love the idea of developing software collaboratively and openly. Last year we started working with AMD on CL Math Libraries. Internally we've had numerous discussions about contributing to the GPGPU community. However, it's neither simple nor straightforward to take a closed software Open Source. Earlier this year, we decided to take the first step and Open Source all of the ArrayFire library's  tertiary projects. This includes all of our ArrayFire library's language wrappers, examples, and source code used for our blog posts. All of our projects are hosted at our ...