CUDA development

Archaea Software, LLC has a great deal of expertise developing with CUDA, NVIDIA Corporation's acclaimed software stack that enables their GPUs to be programmed in C.

For suitable workloads, CUDA can provide speedups of 3x-400x. CUDA is best-suited to accelerate "data parallel" workloads. "Data parallel" is the term coined by Hillis and Steele to describe operations whose "parallelism comes from simultaneous operations across large sets of data, rather than from multiple threads of control." Examples of data-parallel workloads that can be accelerated by CUDA include image processing, FDTD solvers, medical imaging, computational chemistry, seismic analysis for oil & gas exploration, and physical simulation, to name a few. This page has an exhaustive list.

Even if you have completed an initial port of your application to CUDA, we can help you take your application to the next level by adding support for more subtle (and difficult-to-program) CUDA features:

  • Multi-GPU support,
  • CPU/GPU concurrency: enabling the CPU to continue operation while the GPU is processing, and
  • Intra-GPU concurrency: enabling the GPU to perform memory copies concurrently with computation.

If you have an application that you believe would benefit from a CUDA port, we'd be happy to do an evaluation. Fill out our questionnaire to get started.