Image Processing with ArrayFire and OpenCV on the GPU

John MelonakosArrayFire, C/C++, Case Studies, CUDA Leave a Comment

ArrayFire is a great way to supplement OpenCV for faster processing on the GPU. Mcclanahoochie recently posted an interactive demo showing the use of OpenCV with ArrayFire for computing Local Contrast Enhancement on the GPU from webcam video. Mcclanahoochie also shows how easy it is to convert OpenCV Mat images into ArrayFire GPU array images, as seen in the code snippit below: All the source code is available on Google Code, linked to from his website. Simply download ArrayFire and OpenCV and try it out for yourself!

Time delay estimation algorithms with Jacket

ArrayFireCase Studies Leave a Comment

Time delay estimation (TDE) techniques have many diverse signal processing applications: for instance, in such fields as radar, sonar, seismology, geophysics, and ultrasonics for identifying and localizing radiating sources. In this case study, we evaluate the performance of two algorithms developed by Markus Nentwig to find delay and scaling factor between two cyclic signals. The first algorithm uses linear least-squares fitting to estimate the delay. The second algorthm is iterative and relies on FFT-based cross-correlation. A MATLAB® implementation of both approaches can be found in Algorithm 1 and Algorithm 2, respectively. As the author pointed out, the algorithms are not suited for real-time applications since the whole signal needs to be known in advance. However, they can be very useful …

SAR Image Formation Algorithms on the GPU

ArrayFireArrayFire, Case Studies, CUDA 1 Comment

Since the 1950s Synthetic aperture radar (SAR) systems have gained extreme popularity in both civilian and military domains due to their all-weather, day-or-night capabilities as well as the ability to render different views of a “target”. However, the raw SAR data (phase-history data) must be preprocessed  since all point targets at each pulse instance are superimposed  and create a complex interference that is not very useful for target location. SAR image formation algorithms compress this target information in range (frequency) and along-track (azimuth) directions to obtain interpretable images. In the paper titled “SAR image formation toolbox for MATLAB®“, Gorham L.A. and Moore L.J. of the Air Force Research Lab discuss the implementation of the matched filter and backprojection image formation …

Optics Applications with ArrayFire

ArrayFireBenchmarks, Case Studies, CUDA, Events Leave a Comment

In case you missed it, we recently held a webinar on the Jacket GPU Computing Engine for MATLAB® and its applications to Optics and Photonics on Aug 1.  From beam propagation methods to lens design, optics engineers are enjoying the benefit of GPU computing with Jacket to accelerate MATLAB® codes. This was part of a free series of webinars that help you learn about ArrayFire (for C/C++/Fortran/Python) and Jacket (for use with MATLAB®). Anyone can attend these webinars, for they are absolutely free and open for anyone to attend and interact with AccelerEyes engineers. Learn more at http://www.accelereyes.com/webinars. Jacket allows you to envision really fast applications for GPU computing, and the team at AccelerEyes recently helped Northrop Grumman Corporation achieve …

Machine Learning with ArrayFire

ArrayFireBenchmarks, C/C++, Case Studies, CUDA, Events Leave a Comment

In case you missed it, we recently held a webinar on the ArrayFire GPU Computing Library and its applications to Machine Learning on June 15. This webinar was part of a free series of webinars that help you learn about ArrayFire and Jacket (our MATLAB® product). Anyone can attend these webinars, for they are absolutely free and open for anyone to attend and interact with AccelerEyes engineers. Learn more at http://www.accelereyes.com/webinars. Chris, a Software Engineer at AccelerEyes, explained ArrayFire’s position in the GPU computing world, and presented benchmarks where ArrayFire beats GPU libraries such as Thrust in many critical applications. He also mentioned that ArrayFire could be used either standalone, or in combination with other options for GPU computing such …

Option Pricing

ArrayFireArrayFire, Benchmarks, C/C++, Case Studies, CUDA 2 Comments

Andrew Shin, Market Risk Manager of Koch Supply & Trading, achieves significant performance increases on option pricing algorithms using Jacket to accelerate his MATLAB® code with GPUs. Andrew says, “My buddy and I are, at best, novice programmers and we couldn’t imagine having to figure out how to code all this in CUDA.” But he found Jacket to be straight-forward. With these results, he says he can see Jacket and GPUs populating Koch’s mark-to-futures cube, which contains its assets, simulations, and simulated asset prices. Modern option pricing techniques are often considered among the most mathematically complex of all applied areas of finance. Andrew shared some exemplary code to demonstrate how much leverage you can get out of Jacket and GPUs for financial computing in MATLAB® and C/C++. …

Powering Mars Research

John MelonakosCase Studies, CUDA Leave a Comment

The Curiosity Mars rover landing reminded us of a recent talk by Brendan Babb of NASA and UAA in Anchorage about Jacket-accelerated Mars research. The talk was given at GTC 2012 in May. The main thrust of this research is improving mars rover image compression via GPUs and genetic algorithms. With Jacket and GPUs, the researchers were able to achieve 5X speedups on the larger data sizes. The algorithm works by pairing neighboring pixels with a random one and then adjusting the random pixel based on whether it incrementally improves the original image. Babb described the algorithm as an “embarrassingly” parallel process, ideally suited to GPU acceleration. He estimates he has been able to achieve a 20 to 30 percent error …

Parallelized Gene Predictors with Jacket

John MelonakosCase Studies, CUDA Leave a Comment

Researchers at the University of Quebec have developed high-performance gene predictors using Jacket to accelerated their MATLAB® code.  This work has been published in BMC Research Notes and is freely available here. Computerized approaches to studying the human genome are challenged by the exploding amount of data, which doubles roughly every 6 months.  In order to deal with this burgeoning datasets, demands for faster processing power continue to arise. This work focuses on predicting genes using frequency analysis with FFTs and with an equivalent technique known as Goertzel’s algorithm.  In these applications, the emphasis of this paper is to propose tools to geneticists and molecular biologists for the prediction or identification of new genes using existing complementary strategies. The criteria for these …

AccelerEyes Celebrates 5 Years with New Product Releases

John MelonakosAnnouncements, ArrayFire Leave a Comment

AccelerEyes just marked its 5th year in business.  What better way to celebrate than by releasing new products! We are pleased to present ArrayFire v1.2 and Jacket v2.2 for NVIDIA CUDA-based GPUs. These new products support the latest Kepler architecture and include an array of new features and performance boosts, especially for image processing functions. Learn more in the ArrayFire release notes and Jacket release notes. AccelerEyes started up in 2007 with the mission to make productive performance accessible to engineers, scientists, and financial analysts. Our core leadership has been to provide great libraries that are easy-to-use and faster than alternative approaches. The coolest part about working at AccelerEyes is getting to play a part in the awesome projects of our …

Hiring Tons

John MelonakosAnnouncements Leave a Comment

Join the hottest GPU software company. We’re rapidly expanding and looking for talented developers who are passionate about making the programming world more efficient. The things we work on at AccelerEyes provide orders of magnitude more productivity for other developers, greatly increasing the amount of science, engineering, and analytics which are produced each year, across the globe, and across every technical computing industry. Specifically, we are looking to hire many developers in the following two roles: Application Engineering – the most vital job. It requires an ability to produce applications in a variety of disciplines, such as healthcare, finance, oil & gas, defense, etc). You will be the most expert users of ArrayFire and Jacket, and will spread your understanding …