| Version 4 (modified by , 5 years ago) ( diff ) |
|---|
CIVL Support For CUDA
Introduction
CIVL has support for a small subset of CUDA features such as
- Defining CUDA kernels with the
__global__specifier, - Enqueuing kernel calls into streams,
- 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, andblockDim __syncthreads__shared__- Enqueuing multiple kernel calls into streams
cudaMalloccudaMemcpycudaFreecudaDeviceSynchronize
Major Limitations
Missing Features
- Use of the
warpSizevariable - Atomic functions (e.g.
atomicAdd)
Note:
See TracWiki
for help on using the wiki.
