I believe that is what we ended up doing. We followed these instructions to begin with:
GPU processing with Spatial Analyst—Help | ArcGIS Desktop
Then we read your blog and the NVIDIA programming guide:
Are you getting GPU errors while executing the Viewshed 2 tool?
Programming Guide :: CUDA Toolkit Documentation
Then we updated the Windows TDR settings by reading:
Timeout Detection and Recovery (TDR) | Microsoft Docs
TDR Registry Keys | Microsoft Docs
Both of which said to add CUDA_VISIBLE_DEVICES. However, we later noticed that the first one notes the following:
"In the case of multiple GPUs in your system, the first GPU in the TCC (Tesla Compute Cluster) driver mode will be used by default. If there is no GPU available in the TCC driver mode, the first GPU (with index 0) will be used, unless specified otherwise."
So we reset the system (put all settings and drivers back to original states), then we changed the mode of the second GPU to TCC, then opened our NVIDIA control panel and went to:
Manage GPU Utilization -> Check "Use for compute needs" on TCC GPU
Manage 3D Settings -> Global Settings -> CUDA - GPUs -> Ensure TCC card was only card selected
What we noticed with ArcGIS Pro 2.0.0 was that even if the NVIDIA control panel Global Settings and ArcGIS Pro Settings (in the program specific pane) showed the TCC GPU as the available CUDA GPU, ArcGIS Pro would issue a noticed that it failed to located a GPU and would send it to the primary GPU in WDDM that we were using to display graphics.
To resolve we reset the system, as noted and performed these steps inline:
- Insert CUDA capable device into hardware slot
- Boot system and navigate to NVIDIA control panel
- Ensure both cards are visible
- Open CMD Prompt and navigate to C:\Program Files\NVIDIA Corporation\NVSMI
- Run nvidia-smi.exe
- Ensure both cards are currently in WDDM
- (Admin req.) Issue command:
- reg add HKLM\System\CurrentControlSet\Control\GraphicsDrivers /t REG_DWORD /v TdrDelay /d 100 /f
- Reboot; Open REGEDIT and navigate to HKLM\System\CurrentControlSet\Control\GraphicsDrivers
- Verify that TdrDelay has been added as a value to the key path
- Repeat Step 4 and Step 5
- (Admin req.) Issue command:
- nvidia-smi.exe -dm 1 -i ?
- where ? is the numeric value located in the GPU position of the grid output by nvidia-smi.exe for desired TCC GPU
- (Admin req.) Issue command:
- nvidia-smi.exe -e 0 i -i ?
- where ? should be the same numeric value as Step 12
- Repeat Step 4 and Step 5
- Verify that the numeric input (?) now has the TCC/WDDM position set to TCC and the other to WDDM
- To see graphical display the GPU connected to monitors must be in WDDM
- A GPU in TCC mode can only be used for computing purposes not graphics tasking
- Open NVIDIA Control Panel
- On the left hand side navigate to Workstation > Manage GPU Utilization
- Ensure the TCC card has only the option "Use for compute needs" and is selected
- On the left hand side navigate to 3D Settings > Manage 3D Settings
- Select the Global Settings tab
- Select "Base Profile" in drop down menu
- Locate CUDA - GPUS drop down menu
- Ensure the TCC GPU is the only one selected
- If the same GPU is in the system twice, should be enumerated in Step 17 as "1 of 2" and "2 of 2" by their names
- This naming will be visible in these drop down menus
- Select the Program Settings tab
- Select applicable version of ArcGIS product
- Repeat Step 21
- Ensure set to "Use global setting ([GPU name here])