diff --git a/src/cuda/cuda.cpp b/src/cuda/cuda.cpp index b39b109..d0b61d0 100644 --- a/src/cuda/cuda.cpp +++ b/src/cuda/cuda.cpp @@ -160,31 +160,27 @@ struct gpu_info* get_gpu_info(int gpu_idx) { return gpu; } -char* get_str_sm(struct gpu_info* gpu) { - uint32_t max_size = 10; +char* get_str_generic(int32_t data) { + // Largest int is 10, +1 for possible negative, +1 for EOL + uint32_t max_size = 12; char* dummy = (char *) ecalloc(max_size, sizeof(char)); - snprintf(dummy, max_size, "%d", gpu->topo->streaming_mp); + snprintf(dummy, max_size, "%d", data); return dummy; } +char* get_str_sm(struct gpu_info* gpu) { + return get_str_generic(gpu->topo->streaming_mp); +} + char* get_str_cores_sm(struct gpu_info* gpu) { - uint32_t max_size = 10; - char* dummy = (char *) ecalloc(max_size, sizeof(char)); - snprintf(dummy, max_size, "%d", gpu->topo->cores_per_mp); - return dummy; + return get_str_generic(gpu->topo->cores_per_mp); } char* get_str_cuda_cores(struct gpu_info* gpu) { - uint32_t max_size = 10; - char* dummy = (char *) ecalloc(max_size, sizeof(char)); - snprintf(dummy, max_size, "%d", gpu->topo->cuda_cores); - return dummy; + return get_str_generic(gpu->topo->cuda_cores); } char* get_str_tensor_cores(struct gpu_info* gpu) { - uint32_t max_size = 10; - char* dummy = (char *) ecalloc(max_size, sizeof(char)); - snprintf(dummy, max_size, "%d", gpu->topo->tensor_cores); - return dummy; + return get_str_generic(gpu->topo->tensor_cores); }