cuda-memscrub

scrubs the global device memory of CUDA GPUs
git clone git://src.adamsgaard.dk/cuda-memscrub # fast
git clone https://src.adamsgaard.dk/cuda-memscrub.git # slow
Log | Files | Refs | README | LICENSE Back to index

utility.cu (1249B)


      1 #include <stdio.h>
      2 
      3 // MISC. UTILITY FUNCTIONS
      4 
      5 // Error handler for CUDA GPU calls. 
      6 //   Returns error number, filename and line number containing the error to the terminal.
      7 //   Please refer to CUDA_Toolkit_Reference_Manual.pdf, section 4.23.3.3 enum cudaError
      8 //   for error discription. Error enumeration starts from 0.
      9 void checkForCudaErrors(const char* checkpoint_description)
     10 {
     11     cudaError_t err = cudaGetLastError();
     12     if (err != cudaSuccess) {
     13         fprintf(stderr, "CUDA error detected at: %s\n"
     14                 "System error string: %s\n", checkpoint_description,
     15                 cudaGetErrorString(err));
     16         exit(EXIT_FAILURE);
     17     }
     18 }
     19 
     20 void checkForCudaErrors(const char* checkpoint_description, int iteration)
     21 {
     22     cudaError_t err = cudaGetLastError();
     23     if (err != cudaSuccess) {
     24         fprintf(stderr, "CUDA error detected at: %s at iteration %d.\n"
     25                 "System error string: %s\n", checkpoint_description, iteration,
     26                 cudaGetErrorString(err));
     27         exit(EXIT_FAILURE);
     28     }
     29 }
     30 
     31 //Round a / b to nearest higher integer value
     32 unsigned int iDivUp(unsigned int a, unsigned int b)
     33 {
     34     return (a % b != 0) ? (a / b + 1) : (a / b);
     35 }
     36 
     37 // vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4