Enabling Double Precision Mode Titan through code


Is it possible to enable/disable the ‘Double Precision CUDA’ flag through the CUDA runtime or driver API manually? Basically for the project I am working on we are hitting the limits of single precision, so I was looking at using single precision to get a rough answer then using double precision to refine this. With the Titan you have the double precision flag to gain the extra fp64 performance but at the cost of single precision performance. So the first thing that came to mind was am I able to turn this flag on myself when I need to do double precision calculations? Even if this took a second or so to change it would be beneficial.


Look at nvmlDeviceSetGpuOperationMode() in NVML.

Thanks for the response, unfortunately I am not getting very far with it.
When calling nvmlDeviceGetGpuOperationMode it is returning NVML_ERROR_NOT_SUPPORTED. I am assuming this is because it is a standard GeForce driver rather than the Tesla one driving the device. I have tested other nvml commands such as GetName and they work correctly, indicating it is something specific about this function.

As far as I know, the only way to switch the mode at this time is through the control panel, i.e. it cannot be done programmatically through NVML. You may want to consider filing a feature request through the bug reporting form linke from the registered developer website. If you decide to file a feature request, please prefix the synopsis with “RFE” (request for enhancement). Thanks.

Thanks for the response. I have raised a feature request for this as I think it will be a gamechanger for my iterative program. Start doing the calculations in single precision then when needed toggle over to double precision to maximise accuracy while doing the minimal work.