cudaStreamAddCallback() öğesini kullanarak cuda rutinimi senkronize etmeye çalışıyorum, ancak belgelerin açık olmaması nedeniyle bunu uygulayamıyorum. cuda-C-programlama-rehber geri arama olarak tanımlanan gerektiğini söylüyor:cudaStreamAddCallback() yöntemini sınıf üyesi yöntemiyle nasıl kullanabilirim?
void CUDART_CB MyCallback(void *data){}
ve ayarlanması gerekir cudaStreamCallbackBlocking gibi bayrakları bahsediyor; Cuda_Toolhit_Reference_Manual ve cuda_runtime_api.h geri arama bir diğer uygulama gerektirirken:
void CUDART_CB MyCallback (cudaStream_t stream, cudaError_t status, void *userData){}
ve bayrak ileride kullanılmak üzere olduğunu belirterek bağımsız değişken olarak bir 0 gerektirir. Ayrıca, aşağıdaki gibi işlevini çağırarak:
cudaStreamAddCallback(GpuStream, MyCallback, &BufSwitchParams, 0);
ve iletisini alıyorum 64bit için derlemeye çalışırken VS 2010 kullanıyorsanız çalışma: Boşluğun”türü argüman (__ stdcall CMyClass :: *) (cudaStream_t akışı, cudaError_t status, void * userData) ”," cudaStreamCallback_t "türünde bir parametreyle uyumsuz.
Birisi bu işlevi zaten uygulamış ve burada bir pasaj yayınlarken ikilemden kurtulmama yardımcı olabilir mi?
Sen (ilgili [örnek kodda] ilginizi çekebilir http://docs.nvidia.com/cuda/cuda-: sınıf yöntemi kullanmak istiyorsanız yöntemini çağıracak sarıcı işlevi uygulamak gerekir numuneler/index.html # basit-cuda-geri aramaları). –
Robert çok fazla tnx. Google aramalarım sırasında bu örnekleri bulamadım. Bunu yarın araştıracağım. – GregPhil