wiki:CUDA Documentation

Version 4 (modified by Alex Wilton, 5 years ago) ( diff )

Added a small first draft intro to the docs on CUDA

CIVL Support For CUDA

Introduction

CIVL has support for a small subset of CUDA features such as

  1. Defining CUDA kernels with the __global__ specifier,
  2. Enqueuing kernel calls into streams,
  3. Allocating, deallocating, and copying to and from device memory.

CIVL supports CUDA by automatically detecting the use of these features and translating them into CIVL-C code to be analyzed as usual.

Supported Features

  • CUDA kernels with the __global__ specifier
  • The dim3 struct type
  • Use of the CUDA variables threadIdx, blockIdx, gridDim, and blockDim
  • __syncthreads
  • __shared__
  • Enqueuing multiple kernel calls into streams
  • cudaMalloc
  • cudaMemcpy
  • cudaFree
  • cudaDeviceSynchronize

Major Limitations

Missing Features

  • Use of the warpSize variable
  • Atomic functions (e.g. atomicAdd)
Note: See TracWiki for help on using the wiki.