
Untitled
By: a guest on
Jul 15th, 2012 | syntax:
None | size: 0.56 KB | hits: 9 | expires: Never
Pass CUDA stream containers through a C API?
enum QDPCudaStream { TRANSFER=0 , KERNEL=1 };
cudaStream_t * Wcudastreams;
cudaEvent_t * WCopied;
void * CudaGetKernelStream() {
return (void*)&Wcudastreams[KERNEL];
}
void CudaCreateStreams() {
Wcudastreams = new cudaStream_t[2];
for (int i=0; i<2; i++) {
cudaStreamCreate(&Wcudastreams[i]);
}
WCopied = new cudaEvent_t;
cudaEventCreate(WCopied);
}
void * ptr_cudaStream = CudaGetKernelStream();
kernel<<< bl,th,sh , *((cudaStream_t*)ptr_cudaStream) >>>( kernel_args );