Bringing Together the GPU Computing Ecosystem for Python

John Melonakos Announcements, ArrayFire, Computing Trends, CUDA, Open Source, Python Leave a Comment

To date, we have not done a lot for the Python ecosystem. A few months ago, we decided it was time to change that. Like NVIDIA said in this post, the current slate of GPU tools available to Python developers is scattered. With some attention to community building, perhaps we can build something better -- together. NVIDIA spoke some about its plans to help cleanup the ecosystem. We're onboard with that mentality and have two ways we propose to contribute: We're working on a survey paper that assesses the state of the ecosystem. What technical computing things can you do with each package? What benchmarks result from the packages on real Python user code? What plans does each group have ...

ArrayFire v3.8 Release

John Melonakos Announcements, ArrayFire Leave a Comment

We are excited to share the v3.8 release of ArrayFire! ArrayFire is used in commercial, academic, and government projects around the world, solving some of the toughest computing problems in the most innovative projects. It is well-tested and amazingly fast! In this post, we share some of the major features added to ArrayFire in its 3.8 feature release. The binaries and source code can be downloaded from these locations: Official installers GitHub repository Official APT repository Starting with this release, we will provide Ubuntu packages form our APT repository. To install our packages add our apt repository with the below commands. At this moment we are only supporting bionic(18.04) and focal(20.04).

Once the repository is successfully added run the ...

ArrayFire v3.7.x Release

Stefan Yurkevitch Announcements, ArrayFire Leave a Comment

With the release of the 3.7.2 patch release, we wanted to discuss some of the major features added to ArrayFire. The binaries have been available for a few weeks but we wanted to discuss the changes here. It can be downloaded from these locations: Official installers GitHub repository This version of ArrayFire is better than ever! We have added many new features that expand the capabilities of ArrayFire while improving its performance and flexibility. Some of the new features include: 16-bit floating point support Neural network compatible convolution and gradient functions Reduce-by-key Confidence Connected Components Array padding functions Support for sparse-sparse arithmetic operations Pseudo-inverse, meanvar(), rqsrt() and much more! We have also spent a significant amount of effort exposing the ...

ArrayFire v3.6 Release

Umar Arshad Announcements, ArrayFire 3 Comments

Today we are pleased to announce the release of ArrayFire v3.6.  It can be downloaded from these locations: Official installers GitHub repository This latest version of ArrayFire is better than ever! We added several new features that improve the performance and usability of the ArrayFire library. The main features are: Support for batched matrix multiply Added the topk function Added the anisotropic diffusion filter We have also spent a significant amount of effort improving the internals of the library. The build system is significantly improved and organized. Batched Matrix Multiplication The new batch matmul allows you to perform several matrix multiplication operations in one call of matmul. You might want to call this function if you are performing multiple smaller matrix multiplication operations. Here ...

ArrayFire v3.5.1 Release

miguel@arrayfire.com Announcements, ArrayFire 1 Comment

We are excited to announce ArrayFire v3.5.1! This release focuses on fixing bugs and improving performance. Here are the improvements we think are most important: Performance improvements We've improved element-wise operation performance for the CPU backend. The af::regions() function has been modified to leverage texture memory, improving its performance. Our JIT engine has been further optimized to boost performance. Bug fixes We've squashed a long standing bug in the CUDA backend responsible for breaking whenever the second, third, or fourth dimensions were large enough to exceed limits imposed by the CUDA runtime. The previous implementation of af::mean() suffered from overflows when the summation of the values lied outside the range of the backing data type. New kernels for each of ...

ArrayFire v3.5 Official Release

Umar Arshad Announcements, ArrayFire, CUDA, Open Source, OpenCL 1 Comment

Today we are pleased to announce the release of ArrayFire v3.5, our open source library of parallel computing functions supporting CUDA, OpenCL, and CPU devices. This new version of ArrayFire improves features and performance for applications in machine learning, computer vision, signal processing, statistics, finance, and more. This release focuses on thread-safety, support for simple sparse-dense arithmetic operations, canny edge detector function, and a genetic algorithm example. A complete list of ArrayFire v3.5 updates and new features are found in the product Release Notes. Thread Safety ArrayFire now supports threading programming models. This is not intended to improve the performance since most of the parallelism is happening on the device, but it does allow you to use multiple devices in ...

Visit ArrayFire at GTC 2017

Scott Announcements, ArrayFire, Events Leave a Comment

GTC is quickly approaching and we want to see you there! When: May 8-11 Where: San Jose, California ArrayFire Booth: 406 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. Attend an ArrayFire Talk We invite you to attend the following talk presented by one of our knowledgeable and experienced GPU developers. ARRAYFIRE GRAPH: DYNAMIC GRAPH LIBRARY FOR GPUS Presented by Kumar Aatish - Thursday May 11 at 9:00 am - Marriott Ballroom 3 (Session ID S7723) ArrayFire Graph is an out-of-core dynamic graph library that ...

ArrayFire at SC16

Scott Announcements, Events Leave a Comment

SC16 is almost here! We're getting excited to heading to Salt Lake City, Utah, to be a part of this excellent conference. It's a great place for soaking up HPC knowledge, getting inspired, and connecting with the brightest minds in the industry. Here's a quick run-down of where we'll be. Visit our booth. We're booth #717 in the exhibit hall during exhibit hours November 15 - 17. We'll be showing off our latest demos and our engineers will be available for questions. Ask your questions, meet the team, or just bounce some ideas. Try our in-booth tutorials. Want to learn how to use ArrayFire to accelerate your code? Stop by and receive an in-booth tutorial from one of our ArrayFire experts. We’ll show ...

Graphics Updates in ArrayFire v3.4

Pradeep Garigipati Announcements, ArrayFire, OpenGL Leave a Comment

This post outlines the new graphics features available in ArrayFire v3.4:  Vector Fields, Overlays We have added visualization support to render ArrayFire array objects as vector fields. An example of how to visualize vector fields is included in ArrayFire v3.4. A screenshot of this example's output in multi-view mode is shown below, showcasing both static and dynamic vector field rendering. Previously, each graph (such as plot, hist, scatter, etc) was rendered in its own window (or view). Overlaying graphs was not supported. ArrayFire v3.4 now support graph overlays. Each draw call in ArrayFire is either rendered to a whole window (single view) or to a view, which is a portion of the screen obtained in multiview mode. The following image is an example of a ...

Performance Improvements to JIT in ArrayFire v3.4

Pavan Announcements, ArrayFire, Benchmarks Leave a Comment

ArrayFire uses Just In Time compilation to combine many light weight functions into a single kernel launch. This along with our easy-to-use API allows users to not only quickly prototype their algorithms, but also get the best out of the underlying hardware. This feature has been a favorite among our users in the domains of finance and scientific simulation. That said, ArrayFire v3.3 and earlier had a few limitations. Namely: Multiple outputs with inter-dependent variables were generating multiple kernels. The number of operations per kernel was fairly limited by default. In the latest release of ArrayFire, we addressed these issues to get some pretty impressive numbers. In the rest of the post, we demonstrate the performance improvements using our BlackScholes ...