CUDA Computing on Google Colab with ArrayFire

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

For the first-time in our 14 year existence, we are now able to provide our community with the ability to run ArrayFire programs for free within minutes. Before today, users would have to download and install the library on their own systems, which can be a hassle if you just want to play around with some code and benchmarks. Today, we're excited to announce that ArrayFire is available on Google Colab, the free GPU computing cloud service from Google. Colaboratory, or "Colab" for short, allows you to write and execute Python in your browser, with Zero configuration required, free access to GPUs, and easy sharing. You can jump right in and start playing with this new tool: Click Here to ...

Case Study: A Fortune 300 Financial Company

Scott Case Studies Leave a Comment

A Fortune 300 Financial Company located in the North East USA ported their CPU code (C/C++) to CUDA and this enabled them to speed up the necessary financial calculations. Their primary objective was to reduce the time taken to run this code. Before porting to CUDA, they required ten to twelve hours to run the entire code. After porting to CUDA, they were able to do the same work in about 30 minutes. The Client has several C/C++ programmers in their team and they trained many of them to use CUDA. Their code used CUDA to speed up a calculation using Monte Carlo methods to analyze various scenarios in their hedge-fund projection system (HPS). The major portion of their calculations was ...

Case Study: Sleepmed

Aaron Case Studies Leave a Comment

Sleepmed is a biomedical company that focuses on improving the health and quality of life of those who suffer from sleep disorders. Sleepmed is the nation's leader in sleep diagnosis and provides services to more than 80,000 patients annually in one of their 200 labs located in 32 states across the USA. To accomplish this task they created hardware that automatically collects a few gigabytes of important diagnostic data on patients when they sleep. These data are automatically reduced and processed to reveal important events which are later interpreted by sleep specialists. Mission SleepMed was in the process of developing new data collection hardware which, in principle, could share a significant fraction of the code base with the existing hardware. ...

Case Study: Reveal Imaging

Aaron Case Studies Leave a Comment

Iterative reconstruction from projections is typically a function reserved for the medical industry. This approach allows medical professionals to reconstruct computed tomography (CT) images from acquired data; the reconstructed images display virtual “slices” of a scanned object, such as a heart or brain. In reconstructing an image from the data, algorithms are used to approximate the solution. The closer the solution, the better the reconstruction. Multiple iterations produce more accurate solutions, and, thus, higher-quality images. This technique, however, consumes computation time; speeding the process through the GPU is one solution to this problem. Mission Reveal Imaging, a SAIC company, uses this CT technology in developing threat-detection products for transportation systems—such as cargo and baggage screening in airports—and in securing facilities and ...

Case Study: 3Dfit App for glasses.com

Aaron Case Studies Leave a Comment

Many find the experience of purchasing new glasses stressful. Even simply trying on frames can be uncomfortable when done in a public setting. Glasses.com set out to improve the experience by providing customers a way of virtually trying on glasses frames in the comfort of their homes via smartphone or tablet. The Glasses.com app takes a picture of the user’s face, creates a 3D model of facial features, and virtually places selected frames on the user’s 3D image. The user is then free to view the 3D image from a variety of angles. The application relies on computer vision to recognize the features of a user’s face and then generate an accurate, high-fidelity, 3D model of that face. Virtual frames ...

Case Study: A Fortune 200 Insurance Company

Scott Case Studies Leave a Comment

A Fortune 200 Insurance Company located on the West coast was using a third-party, closed-source application to make inferences about future market conditions in order to hedge their investments. In order to carry out calculations over millions of possible scenarios, they were using a small cluster consisting of 1,300 hyperthreaded CPU cores in blade servers. In the near term, they projected that their business needs would grow by a factor of two and they were near capacity with their existing system. Mission The Client hired ArrayFire to conduct a comprehensive audit of their system to access its performance in nine key areas: The technological platform - a high-level overview of their system, example execution flows, discussions of shortcomings of their ...

Whole Brain Dynamics at Single Neuron Resolution

Wassapon Watanakeesuntorn Case Studies Leave a Comment

Empirical Dynamic Modeling (EDM) is a mathematical framework designed for studying nonlinear dynamical systems. EDM is based upon the concept of state-space reconstruction (SSR). Takens' theorem states that the attractor manifold of a multivariate dynamical system can be reconstructed from time-lagged coordinates of a single time series variable. Figure 1 illustrates the concept of state space reconstruction. EDM encompasses multiple functions, but we focused on two main techniques, the simplex projection, which uses individual variables to create univariate embeddings to predict itself, and convergent cross-mapping (CCM) a method for nonlinear causal inference. Simplex projection is a nonlinear forecasting algorithm often used for estimating the dimensionality of a dynamical system using its prediction skill as a selection criterion. Simplex projection uses ...

Finger Vein Identity Recognition in "Negligible Time" using ArrayFire

John Melonakos ArrayFire, Case Studies, Computer Vision, CUDA, Open Source Leave a Comment

In this blog post, we summarize work by researchers in Slovakia using ArrayFire to develop OpenFinger, a finger vein identity recognition library. Finger prints and finger veins can be used as a biometric for identity recognition. The physical setup of their sensor system is the following collection of CMOS sensors scattering light to a near infrared LED that projects the image to a CCD camera for capture to a computer. The computing infrastructure used in this work consists of the following components. Several great open source libraries are used, including OpenCV, Caffe, Qt, and ArrayFire. ArrayFire is specifically used in pre-processing to accelerate Gabor filtering on the GPU. Gabor filter has proven itself as one of the most suitable techniques ...

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 ...

Schrödinger's Smoke in Unity with ArrayFire

John Melonakos Case Studies Leave a Comment

Researchers in Russia used ArrayFire to achieve impressive results modeling Eulerian incompressible fluids in the Unity game engine. The team developed a solution that allows us to simulate particle systems with high physical accuracy using ArrayFire. The solution makes it possible to simulate the interaction of two vortex rings—their collisions and intersections. The particle system is a method used in computer graphics and interactive simulations to represent objects that do not have clear geometric boundaries. This makes it possible to create practically any type of natural effects—e.g., explosions, jets of steam, nebulae, rain, snow, water splashes, fire smoke, etc. The particle system controls groups of particles—that is, small flat images or mesh objects. Any particle has a certain ‘lifetime’ (usually ...