OpenSourcePhysics/tracker

GPU Acceleration

Opened this issue · 3 comments

Hi, I've been using Tracker for my mechanics lab course at school and it's a really useful piece of software! It doesn't seem to be very performant on the high-resolution videos that modern smartphones are able to put out, though. I was wondering if there's been any work (or interest) in using the GPU to accelerate some of the computations being performed? I took at brief look at the code and there doesn't seem to be any support for GPU acceleration. It has the potential to make Tracker dramatically faster!

Hi Doug, sorry for the late response! I'm not aware of the beta JavaScript Tracker—thanks for bringing that to my attending. I did some research and it looks like GPU acceleration would apply to JavaScript as well: GPU.js. It looks like there are GPU interfaces for Java as well (for the stable version of Java).

Since I'm not as familiar as you with the inner workings of Tracker, I was wondering if you might be able to take a look at this Stack Overflow post that talks about using Java to access the compute power of the GPU and what the GPU is actually good for.

In particular, does Tracker have a lot of data-parallelism where the same computation is done on many different parts of an image? At first blush, it looks like this happens in the current iteration of the auto-tracking feature where the cross-correlation is computed between a template image and different patches of an image to check for a match. I might not have completely understood the code, though. Do you know of any other parts that exhibit this kind of data parallelism?