NVML API Reference Guide (PDF) - vR352 (older) - Last updated May 7, 2015 - Send Feedback

4.5. Initialization and Cleanup

This chapter describes the methods that handle NVML initialization and cleanup. It is the user's responsibility to call nvmlInit() before calling any other methods, and nvmlShutdown() once NVML is no longer being used.

Functions

nvmlReturn_t nvmlInit ( void )
nvmlReturn_t nvmlShutdown ( void )

Functions

nvmlReturn_t nvmlInit ( void )
Returns

Description

Initialize NVML, but don't initialize any GPUs yet.

Note:

In NVML 5.319 new nvmlInit_v2 has replaced nvmlInit"_v1" (default in NVML 4.304 and older) that did initialize all GPU devices in the system.

This allows NVML to communicate with a GPU when other GPUs in the system are unstable or in a bad state. When using this API, GPUs are discovered and initialized in nvmlDeviceGetHandleBy* functions instead.

Note:

To contrast nvmlInit_v2 with nvmlInit"_v1", NVML 4.304 nvmlInit"_v1" will fail when any detected GPU is in a bad or unstable state.

For all products.

This method, should be called once before invoking any other methods in the library. A reference count of the number of initializations is maintained. Shutdown only occurs when the reference count reaches zero.

nvmlReturn_t nvmlShutdown ( void )
Returns

Description

Shut down NVML by releasing all GPU resources previously allocated with nvmlInit().

For all products.

This method should be called after NVML work is done, once for each call to nvmlInit() A reference count of the number of initializations is maintained. Shutdown only occurs when the reference count reaches zero. For backwards compatibility, no error is reported if nvmlShutdown() is called more times than nvmlInit().


NVML API Reference Guide (PDF) - vR352 (older) - Last updated May 7, 2015 - Send Feedback