TargetDevice
✖
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 allclose allBasic Examples (1)Summary of the most common use cases
Scope (6)Survey of the scope of standard use cases
Inference (5)

https://wolfram.com/xid/0jz9ybv9edoiqm-tlwzcx

Evaluate a model on the system's default GPU:

https://wolfram.com/xid/0jz9ybv9edoiqm-8gyx6n

Specify the use of CoreML (on macOS ARM64):

https://wolfram.com/xid/0jz9ybv9edoiqm-0k0fps

Specify the use of a DirectML-compatible card (on Windows x86-64):

https://wolfram.com/xid/0jz9ybv9edoiqm-xwn0im

Specify the use of a CUDA-compatible card (on Windows x86-64 or Linux x86-64):

https://wolfram.com/xid/0jz9ybv9edoiqm-mct2md

Training (1)
Train a net using a specified CUDA GPU:

https://wolfram.com/xid/0jz9ybv9edoiqm-4rsox3

Train a net using two specified GPUs, where each GPU receives a batch of 16 training examples per training iteration:

https://wolfram.com/xid/0jz9ybv9edoiqm-1yt5v6

Train a net using all available GPUs:

https://wolfram.com/xid/0jz9ybv9edoiqm-8iermb

Possible Issues (3)Common pitfalls and unexpected behavior
If the system GPU is not supported, the operation will fail:

https://wolfram.com/xid/0jz9ybv9edoiqm-38wpd2


Some settings are only supported for model evaluation and will fail during training:

https://wolfram.com/xid/0jz9ybv9edoiqm-jxovy1


There is currently no CUDA support on macOS:

https://wolfram.com/xid/0jz9ybv9edoiqm-8j5hhc


Wolfram Research (2016), TargetDevice, Wolfram Language function, https://reference.wolfram.com/language/ref/TargetDevice.html (updated 2024).
Text
Wolfram Research (2016), TargetDevice, Wolfram Language function, https://reference.wolfram.com/language/ref/TargetDevice.html (updated 2024).
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.
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
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: 27-March-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: 27-March-2025
]}