#ifndef GMX_GPU_UTILS_CUDAUTILS_CUH
#define GMX_GPU_UTILS_CUDAUTILS_CUH
-#include "config.h"
-
#include <stdio.h>
-#if HAVE_NVML
-#include <nvml.h>
-#endif /* HAVE_NVML */
#include <array>
#include <string>
#define CU_RET_ERR(status, msg) do { } while (0)
#define CU_CHECK_PREV_ERR() do { } while (0)
-#define HANDLE_NVML_RET_ERR(status, msg) do { } while (0)
#endif /* CHECK_CUDA_ERRORS */
* The CUDA device information is queried and set at detection and contains
* both information about the device/hardware returned by the runtime as well
* as additional data like support status.
- *
- * \todo extract an object to manage NVML details
*/
struct gmx_device_info_t
{
int id; /* id of the CUDA device */
cudaDeviceProp prop; /* CUDA device properties */
int stat; /* result of the device check */
- unsigned int nvml_orig_app_sm_clock; /* The original SM clock before we changed it */
- unsigned int nvml_orig_app_mem_clock; /* The original memory clock before we changed it */
- gmx_bool nvml_app_clocks_changed; /* If application clocks have been changed */
- unsigned int nvml_set_app_sm_clock; /* The SM clock we set */
- unsigned int nvml_set_app_mem_clock; /* The memory clock we set */
-#if HAVE_NVML
- nvmlDevice_t nvml_device_id; /* NVML device id */
- // TODO This can become a bool with a more useful name
- nvmlEnableState_t nvml_is_restricted; /* Status of application clocks permission */
-#endif /* HAVE_NVML */
};
/*! Launches synchronous or asynchronous device to host memory copy.