ArrayFire v2.0 Official Release

Scott Announcements, ArrayFire, CUDA, OpenCL 1 Comment

We are thrilled to announce the official release ArrayFire v2.0, our biggest and best product ever! ArrayFire v2.0 adds full commercial support for OpenCL devices including all AMD APUs and AMD FireProTM graphics, CUDA GPUs from NVIDIA, and other OpenCL devices from Imagination, Freescale, ARM, Intel, and Apple. ArrayFire is a CUDA and OpenCL library designed for maximum speed without the hassle of writing time-consuming CUDA and OpenCL device code.  With ArrayFire’s library functions, developers can maximize productivity and performance. Each of ArrayFire’s functions has been hand-tuned by CUDA and OpenCL experts. Announcing ArrayFire for OpenCL Support for all of ArrayFire's function library (with a few exceptions) Same API as ArrayFire for CUDA enabling seamless interoperability Just-In-Time (JIT) compilation of ...

Photos from SC13

John Melonakos ArrayFire, CUDA, Events, OpenCL Leave a Comment

SC13 was awesome this week! Tomorrow is the last day of the exhibition. For those of you that did not make it to the show, here are some pictures from our exhibit: The AccelerEyes Booth -------------------------------------------------------------------------------------------------------- ArrayFire OpenCL Demo on ARM Mali -------------------------------------------------------------------------------------------------------- ArrayFire CUDA Demo on NVIDIA K40 -------------------------------------------------------------------------------------------------------- ArrayFire OpenCL Demo on Intel Xeon Phi Coprocessor -------------------------------------------------------------------------------------------------------- ArrayFire OpenCL Demo on AMD FirePro GPU -------------------------------------------------------------------------------------------------------- It was a great show and wonderful to see so many ArrayFire users in person. If you could not attend and would like to learn more about our CUDA or OpenCL products or services, let us know! Related articles ArrayFire v2.0 Release Candidate Now Available for Download Two Kinds of Exhibits to Watch ...

ArrayFire v2.0 Release Candidate Now Available for Download

Aaron Announcements, ArrayFire, CUDA, OpenCL Leave a Comment

ArrayFire v2.0 is now available for download. The second iteration of our free, fast, and simple GPU library now supports both CUDA and OpenCL devices. Major Updates ArrayFire now works on OpenCL enabled devices New and improved documentation Optimized for new GPUs--NVIDIA Kepler (K20) and AMD Tahiti (7970) New in ArrayFire OpenCL Same APIs as ArrayFire CUDA version Supports both Linux and Windows Just In Time Compilation (JIT) of kernels Parallel for: gfor Accelerated algorithms in the following domains Image Processing Signal Processing Data Analysis and Statistics Visualization And more New in ArrayFire CUDA New Signal and Image processing functions Faster transpose and matrix multiplication Better debugging support for GDB and Visual Studio Bug fixes to make overall experience better For a more complete list of  the ...

ArrayFire Examples (Part 7 of 8) - PDE

ArrayFire ArrayFire, CUDA Leave a Comment

This is the seventh in a series of posts looking at our current ArrayFire examples. The code can be compiled and run from arrayfire/examples/ when you download and install the ArrayFire library. Today we will discuss the examples found in the pde/ directory. In these examples, my machine has the following configuration:

  The followings are the examples of formulating Partial Differential Equations, generally used to create a relevant computer model with several variables. In these examples, I don't introduce any new functions but focus on the performance of ArrayFire . You can experience the power of ArrayFire in these examples by looking at how it quickly handles the complex formulas and beautifully draws the result in real-time. 1. Shallow Water Equations - swe.cpp Figure 1 This is ...

ArrayFire Examples (Part 6 of 8) - Multiple GPUs

ArrayFire ArrayFire, CUDA Leave a Comment

This is the sixth in a series of posts looking at our current ArrayFire examples. The code can be compiled and run from arrayfire/examples/ when you download and install the ArrayFire library. Today we will discuss the examples found in the multi_gpu/ directory. In these examples, my machine has the following configuration:

*The following order represents the speed of GPUs in my machine from fastest to slowest: K20c, C2070, C1060. ArrayFire is capable of multi-GPU management. This capability becomes useful for benchmarking a multiple GPUs in dynamic executions. Let's take a look at the following examples. 1. Fast Fourier Transform - fft.cpp This is an example of calculating the elapsed time for analyzing signal of each column in a matrix with random complex-valued floating point for each ...

ArrayFire Examples (Part 5 of 8) - Machine Learning

ArrayFire ArrayFire, CUDA Leave a Comment

This is the fifth in a series of posts looking at our current ArrayFire examples. The code can be compiled and run from arrayfire/examples/ when you download and install the ArrayFire library. Today we will discuss the examples found in the machine_learning/ directory. In these examples, my machine has the following configuration:

   1. K-Means Clustering - kmeans.cpp Figure 1 This is an example of K-Means Clustering Algorithm. K-Means Clustering Algorithm is a data mining technique that partitions the given data into groups by their similarities. All you need to know from this example is that this algorithm will repeatedly run through many loops to stabilize the clusters. Again, ArrayFire has this beautiful tool called GFOR loop that handles any matrix array arithmetic and transformation in parallel. This increases the speed of both ...

Solution to NVIDIA Toolkit Installation Error for Ubuntu 12.10 [Driver: Installation Failed]

ArrayFire ArrayFire, CUDA Leave a Comment

  You may find this error message while trying to set up the NVIDIA CUDA Toolkit in Ubuntu. I found it when I was installing the toolkit for ArrayFire   [1] CUDA Toolkit Installation 1. Download the CUDA Toolkit in the link.  2. Extract the .run file in a location

  3. Exit the X server (press Ctrl+Alt+F1) and stop the display manager by the following command.

  4. cd to the location and now there are run files named samples*, devdriver* and cudatoolkit*. 5. Install devdriver (*only if NVIDIA Driver is not installed)

  6. Install cudatoolkit

In the end, when it asks "Would you like to create a symbolic link /usr/local/cuda/ pointing to /usr/local/cuda-x.x?", ...

Beamforming with ArrayFire

Scott ArrayFire, Case Studies, CUDA Leave a Comment

Alessandro Savoia and researchers at Università degli Studi Roma Tre have achieved an order of magnitude improvement in the performance of a beamforming application using ArrayFire for GPU acceleration with CUDA-capable NVIDIA GPUs. This application involves conventional beamforming. Steps include the application of a time delay to each signal vector, summation across all vectors, and processing on the result. Processing includes demodulation, envelope extraction, and logarithmic compression. ArrayFire's functions for shifting, interpolation, and filtering made this application possible for acceleration on GPUs and reduced the time to develop significantly. Alessandro's benchmarks show that a CPU-only version was only running at 1 frame/sec, while the ArrayFire-accelerated version was running at 10-20 frames/sec, depending on the dataset. Alessandro and his team are looking forward to ...

ArrayFire Examples (Part 4 of 8) - Image Processing

ArrayFire ArrayFire, CUDA Leave a Comment

This is the fourth in a series of posts looking at our current ArrayFire examples. The code can be compiled and run from arrayfire/examples/ when you download and install the ArrayFire library. Today we will discuss the examples found in the image_processing/ directory. In these examples, my machine has the following configuration:

Image Demo The purpose of this example is to show how to do some common image manipulations. The method channel_split shows how easily multi-dimensional arrays can be subdivided:

The colorspace function is useful for moving images between representation spaces. Images can easily be loaded as color images, or converted to grayscale images. Note that when loading images, scaler division is performed to normalize the values between 0 and 1:

Other useful functions ...

ArrayFire + Scorpii Demo by CreativeC

Scott ArrayFire, Benchmarks, Case Studies, CUDA, Events Leave a Comment

CreativeC makes awesome compute + visualization systems. We got to see the demo in live action at the GPU Technology Conference last month. Tim Thomas was kind enough to let us film the demo showing how ArrayFire can be used to drive a multi-node, 9 GPU system in a physics application. Checkout the video below. If you are interested in high-throughput compute coupled with high-pixel visualizations, we recommend you talk with the folks at CreativeC. They are always pushing the envelope on what can be done with GPU computing and GPU visualizations. Also, if you have cool demos showing ArrayFire in action, let us know. We'd love to film your work and make it available on this blog! Related articles ...