When using the solver it will default to using any available GPU as long as it has enough memory to support the number of voxels you have selected. If it can not, it will fall back to using the next best device that has enough memory.
<aside> 💡 Choosing a specific device on a system does not guarantee that that device will be used, it is just a suggestion to the solver. Reasons it may not pick a device you choose could be an out of date driver, lack of memeory resources, or incompatibility.
</aside>
API lets you choose what compute API you want the solver to use. OpenCL is the default and will work on most GPUs and CPUs. Metal is only available on macOS and will perform faster compared to OpenCL. Cuda is only available on Nvidia GPUs.
If you have multiple devices such as two GPUs you may want to ask the solver to use one over the other. You can select a device by name by choosing name in the preferred device drop-down menu. You will see a new name device field appear. You can choose a device from this field’s drop-down menu.
In some situations with a render farm you may want to choose a device based on an index rather than a name. The order of the devices will vary from system to system, but you can ask the solver to use the first, second, third, etc. GPU on a system to run multiple simulations in parallel.
You can have the solver automatically pick a preferred device by name by setting the AXIOM_DEVICE_PREFERRED environment variable. This can only be one device. The manual or index device picking options do override this in Houdini if you use them.
If there is a device causing problems you can force Axiom to ignore it using an environment variable. Commonly you may want to blacklist your CPU's onboard graphics as it typically won't have good OpenCL support. You can blacklist multiple devices by separating their names with a comma. This variable can be set in the houdini.env file in your Houdini preferences or globally on your system.