int main()

in example/cuda-mps/cuda_mem_and_sm_count.c [19:59]


int main(int argc, const char **argv)
{
        int deviceCount = 0;
        cudaError_t error_id = cudaGetDeviceCount(&deviceCount);
        if (error_id != cudaSuccess)
        {
                fprintf(stderr, "cudaGetDeviceCount returned: %s\n", cudaGetErrorString(error_id));
                return 1;
        }

        if (deviceCount == 0)
        {
                printf("No GPU devices found\n");
                return 1;
        }

        for (int i = 0; i < deviceCount; i++)
        {
                cudaSetDevice(i);
          // Get memory info, total memory and the memory can be used in this client.
                size_t freeMem = 0;
                size_t totalMem = 0;
                error_id = cudaMemGetInfo(&freeMem, &totalMem);
                if (error_id != cudaSuccess)
                {
                        fprintf(stderr, "cudaMemGetInfo returned: %s\n", cudaGetErrorString(error_id));
                	return error_id;
                }
                printf("For device %d:  Free memory: %ld M, Total memory: %ld M\n", i, freeMem/(1024*1024), totalMem/(1024*1024));
        // Get device info, the multi process count can be used in this client.
                int numProcs;
                error_id = cudaDeviceGetAttribute(&numProcs, cudaDevAttrMultiProcessorCount, i);
                if (error_id != cudaSuccess)
                {
                        fprintf(stderr, "cudaGetDeviceProperties returned: %s\n", cudaGetErrorString(error_id));
                	return error_id;
                }
                printf("For device %d:  multiProcessorCount: %d\n", i, numProcs);
        }
        return 0;
}