dynamic.cu 790 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include <string>
  2. #include <cuda.h>
  3. #include <iostream>
  4. #ifdef _WIN32
  5. #define EXPORT __declspec(dllexport)
  6. #else
  7. #define EXPORT
  8. #endif
  9. int dynamic_base_func(int);
  10. EXPORT int __host__ cuda_dynamic_host_func(int x)
  11. {
  12. return dynamic_base_func(x);
  13. }
  14. static
  15. __global__
  16. void DetermineIfValidCudaDevice()
  17. {
  18. }
  19. EXPORT void cuda_dynamic_lib_func()
  20. {
  21. DetermineIfValidCudaDevice <<<1,1>>> ();
  22. cudaError_t err = cudaGetLastError();
  23. if(err != cudaSuccess)
  24. {
  25. std::cerr << "DetermineIfValidCudaDevice [SYNC] failed: "
  26. << cudaGetErrorString(err) << std::endl;
  27. }
  28. err = cudaDeviceSynchronize();
  29. if(err != cudaSuccess)
  30. {
  31. std::cerr << "DetermineIfValidCudaDevice [ASYNC] failed: "
  32. << cudaGetErrorString(cudaGetLastError()) << std::endl;
  33. }
  34. }