is an option for certain functions that specifies on which device the computation should be attempted.


TargetDevice

is an option for certain functions that specifies on which device the computation should be attempted.
Details


- Possible settings for TargetDevice change depending on the system and the available hardware.
- General settings include:
-
"CPU" use the CPU "GPU" use available dedicated hardware - The specification TargetDevice->"GPU" has the following interpretation, depending on $SystemID:
-
"CoreML" "MacOSX-ARM64" "CUDA" "Windows-x86-64" or "Linux-x86-64" "DirectML" "Windows-x86-64" if no CUDA card is detected - Settings specific to system and available hardware include:
-
"CoreML" Apple CoreML framework "CUDA" Nvidia CUDA API "DirectML" Microsoft Direct Machine Learning API - Currently, the only settings supported by NetTrain are "CPU" and "CUDA".
- TargetDevice{"GPU",n} allows a specific GPU to be used, where n is an integer between 1 and the number of GPUs available on your computer.
- In general, a specific value of n might not identify the same GPU when different backends such as "CUDA" and "DirectML" are used.
- TargetDevice->{"GPU",All} specifies that all available GPUs should be used jointly.
- TargetDevice->{"GPU",{n1,n2,…}} specifies that a specific subset of the GPUs should be used jointly.
- On Apple silicon machines, TargetDevice->"CoreML" attempts to perform the computation using the Apple Neural Engine. It is not currently supported for NetTrain and NetMeasurements. »
- On Windows machines, TargetDevice->"DirectML" can perform the computation using an integrated or discrete GPU with DirectX support. It is not currently supported for NetTrain and NetMeasurements.
- TargetDevice"CUDA" requires NVIDIA GPUs with compute capability 3.7 or 5.0 and higher.
- In a fresh Wolfram Language installation on Linux and Windows machines, TargetDevice->"GPU" and related GPU settings will automatically download additional libraries. Such a download can also trigger again in case updates are available. The downloads can also be started manually by running PacletInstall["MXNetResources"], PacletInstall["ONNXRuntimeResources"] and PacletInstall["CUDAResources"].
Examples
open all close allBasic Examples (1)
Scope (6)
Inference (5)
Tech Notes
Related Guides
Related Workflows
- Run Neural Network Training on GPUs
Text
Wolfram Research (2016), TargetDevice, Wolfram Language function, https://reference.wolfram.com/language/ref/TargetDevice.html (updated 2024).
CMS
Wolfram Language. 2016. "TargetDevice." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/TargetDevice.html.
APA
Wolfram Language. (2016). TargetDevice. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TargetDevice.html
BibTeX
@misc{reference.wolfram_2025_targetdevice, author="Wolfram Research", title="{TargetDevice}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/TargetDevice.html}", note=[Accessed: 10-August-2025]}
BibLaTeX
@online{reference.wolfram_2025_targetdevice, organization={Wolfram Research}, title={TargetDevice}, year={2024}, url={https://reference.wolfram.com/language/ref/TargetDevice.html}, note=[Accessed: 10-August-2025]}