A Simple Particle System with ArrayFire

Stefan Yurkevitch ArrayFire Leave a Comment

It’s the 4th of July today and we’re celebrating at ArrayFire! The 4th of July implies fireworks, and fireworks obviously imply particle systems. Particle systems are a collection of many small images or points that can be rendered to represent some complex behaving object. So before we can launch our fireworks, we will need to create a particle system. The large number of particles in a system lends well to GPU computation. Thankfully, ArrayFire’s easy to use interface will allow us to do this simply and efficiently. First, let’s examine the structure of a typical particle system. Individual particles in a system typically have a variety of properties that govern their individual behavior. A non-comprehensive list below summarizes some of …

Visualizing the af::array with Forge

Stefan Yurkevitch ArrayFire Leave a Comment

The ArrayFire library attempts to make high-performance computing as easy as possible for scientists and engineers. Because many tasks need to be visualized, ArrayFire also provides a high-level interface to our Forge visualization library. In today’s “Learning ArrayFire from scratch” post we present an overview of ArrayFire’s visualization functionality and demonstrate how to use Forge to display data contained in af::array objects.

ArrayFire – CUDA Interoperability

Brian Kloppenborg ArrayFire, CUDA 2 Comments

Although ArrayFire is quite extensive, there remain many cases in which you may want to write custom kernels in CUDA or OpenCL. For example, you may wish to add ArrayFire to an existing code base to increase your productivity, or you may need to supplement ArrayFire’s functionality with your own custom implementation of specific algorithms. Today’s “Learning ArrayFire from scratch“, blog post discusses how you can interface ArrayFire and CUDA.

Manipulating and restructuring arrays

Stefan Yurkevitch ArrayFire Leave a Comment

One of the most common questions we see on the ArrayFire Google Group pertains to methods to manipulate the dimensions of ArrayFire array objects. Thus we will continue the “Learning ArrayFire from scratch” blog series by providing a detailed discussion of the numerous functions that permit you to change the dimentionality, flatten, flip, join, shift, transpose, and tile arrays.

Introduction to Vectorization in ArrayFire

Stefan Yurkevitch ArrayFire Leave a Comment

Programmers and Data Scientists want to take advantage of fast and parallel computational devices. One of the best ways of doing this is to write vectorized code; however, this is often easier said than done. In today’s continuation of the blog series “Learning ArrayFire from scratch“, we will discuss the various methods by which you can maximize the performance of your code by using ArrayFire’s built-in vectorization features.

Introduction to the ArrayFire array

Brian Kloppenborg ArrayFire Leave a Comment

The fundamental primitive of the ArrayFire Library is our container object, the array. As the next post in our blog series, “Learning ArrayFire from scratch“, we will describe how to construct arrays, what datatypes arrays support, indexing, how to query an array for various properties (content, dimensions), and how to write mathematical expressions that involve arrays.

Visit ArrayFire at GTC 2016

Scott Announcements, ArrayFire, Events 2 Comments

GTC is quickly approaching and we want to see you there! When: April 4-7 Where: San Jose, California ArrayFire Booth: 103 GTC is the world’s premier GPU developer conference. Connect with experts from NVIDIA and other leaders in high performance computing. At GTC you’ll discover what’s next in GPU breakthroughs and gain useful insights in hundreds of sessions and hands-on labs covering a diverse range of application domains. We invite you to attend the following talk presented by one of our knowledgeable and experienced GPU developers. Real-Time Visualization of CUDA® Data Using ArrayFire Forge Presented by Brian Kloppenborg – Wednesday April 6 at 3:30 pm (Room 211B) We will debut ArrayFire Forge, our new general-purpose data visualization library for GPUs. ArrayFire Forge is a …

Rust wrapper for ArrayFire

Pradeep Garigipati ArrayFire Leave a Comment

In this post, we would like to introduce our latest & newest language bindings for ArrayFire library: ArrayFire-Rust – Rust bindings for ArrayFire. We have been working on the wrapper and using it in daily production within the company for the last few months and now regard it stable enough for public distribution. How to use ArrayFire from crates.io To use the rust bindings for ArrayFire from crates.io, the following requirements are to be met first: Download and install ArrayFire binaries based on your operating system. If you are on Linux or OSX, set the environment variable AF_PATH to point to ArrayFire installation root folder. (This is automatically set for you on Windows.) Make sure you add the path to …

ArrayFire: Open-source for one year!

Brian Kloppenborg ArrayFire Leave a Comment

Its hard to believe, but our ArrayFire accelerated computing library was open-sourced a year ago! While we were packing up our booth to head to SuperComputing 2015 my colleagues started reminiscing on how much our company and library have changed over the last year. ArrayFire the library In terms of raw statistics, the ArrayFire library is a really active project given that GPU computing is still seen as a niche field. Since its inception, ArrayFire has received 3285 commits from 31 developers (11 of which are our employees) and  produced nine (public) releases. At present we have 84 watchers, 1141 stars, and 160 forks of our code. In the last year we have had a total of 1105 opened issues. Of these, 427 …