multiple mps for base X86 Mac with multiples gpus
Labels: triaged, module: mps

### 🚀 The feature, motivation and pitch

<h2 data-v-1c6ef997="" id="overview" style="font-style: normal; font-variant-caps: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 0px; padding: 0px; color: rgb(29, 29, 31); font-size: 1.88235rem; line-height: 1.125; font-weight: 600; letter-spacing: 0.013em; font-family: var(--typography-html-font,&quot;SF Pro Display&quot;,system-ui,-apple-system,BlinkMacSystemFont,&quot;Helvetica Neue&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif); caret-color: rgb(29, 29, 31); text-align: left;"><a data-v-1c6ef997="" href="https://developer.apple.com/documentation/metal/gpu_devices_and_work_submission/multi-gpu_systems/finding_multiple_gpus_on_an_intel-based_mac#overview" class="header-anchor" aria-label="Scroll to section" style="color: inherit; text-decoration: none; position: relative; padding-right: 23px; display: inline-block;">Overview</a></h2><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 0.8em 0px 0px; padding: 0px; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;">Your app can use multiple GPUs on an Intel-based Mac, including any built-in and external GPUs. Start by getting a list of all the system’s available GPUs, and then submit workloads to those appropriate for your app’s tasks.</p><aside data-v-63fdad41="" aria-label="note" class="note" style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; display: block; margin-top: 1.6em; break-inside: avoid; border-radius: var(--aside-border-radius,15px); border-style: var(--aside-border-style,solid); border-width: var(--aside-border-width,1px 1px 1px 1px); padding: 0.94118rem; background-color: var(--color-aside-note-background); border-color: var(--color-aside-note-border); box-shadow: 0 0 1px 0 var(--color-aside-note-border) inset,0 0 1px 0 var(--color-aside-note-border); caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;"><p data-v-63fdad41="" class="label" style="margin: 0px; padding: 0px; font-size: 1rem; line-height: 1.52944; font-weight: 600; letter-spacing: -0.021em; font-family: var(--typography-html-font,&quot;SF Pro Text&quot;,system-ui,-apple-system,BlinkMacSystemFont,&quot;Helvetica Neue&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif); color: var(--color-aside-note);">Note</p><p data-v-63fdad41="" style="margin: 0.4em 0px 0px; padding: 0px;">Mac computers with Apple silicon have a single, high-performance, and energy-efficient GPU.</p></aside><h3 data-v-1c6ef997="" id="3030767" style="font-style: normal; font-variant-caps: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; color: rgb(29, 29, 31); font-size: 1.64706rem; line-height: 1.14286; font-weight: 600; letter-spacing: 0.007em; font-family: var(--typography-html-font,&quot;SF Pro Display&quot;,system-ui,-apple-system,BlinkMacSystemFont,&quot;Helvetica Neue&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif); caret-color: rgb(29, 29, 31); text-align: left;"><a data-v-1c6ef997="" href="https://developer.apple.com/documentation/metal/gpu_devices_and_work_submission/multi-gpu_systems/finding_multiple_gpus_on_an_intel-based_mac#3030767" class="header-anchor" aria-label="Scroll to section" style="color: inherit; text-decoration: none; position: relative; padding-right: 23px; display: inline-block;">Get a List of GPU Devices</a></h3><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 0.8em 0px 0px; padding: 0px; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;">Your app can get an array of<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/mtldevice" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">MTLDevice</code></a><span class="Apple-converted-space"> </span>instances, each of which represents an available GPU, by calling the<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/1433367-mtlcopyalldevices" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">MTLCopy<wbr data-v-88c637be="">All<wbr data-v-88c637be="">Devices()</code></a><span class="Apple-converted-space"> </span>function.</p><figure data-v-e05a7332="" id="3992591" style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; display: block; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;"><div data-v-545cf0ad="" data-syntax="swift" class="code-listing single-line" data-v-e05a7332="" style="display: flex; flex-direction: column; min-height: 100%; border-radius: 22px; overflow: hidden; filter: blur(0px); background: var(--background,var(--color-code-background)); color: var(--text,var(--color-code-plain)); border-color: var(--colors-grid,var(--color-grid)); border-width: var(--code-border-width,0); border-style: var(--code-border-style,solid);"><div data-v-545cf0ad="" class="container-general" style="display: flex; overflow: auto; flex-grow: 1;"><pre data-v-545cf0ad="" style="margin: 0px; padding: 8px 0px 8px 14px; font-size: 1em; font-weight: 400; font-style: normal; overflow: unset; white-space: pre; overflow-wrap: normal; display: flex; height: 25px; flex-grow: 1;"><code data-v-545cf0ad="" style="font-size: 0.88235rem; font-weight: 400; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: -0.027em; display: flex; flex-direction: column; white-space: pre; overflow-wrap: normal; flex-grow: 9999; line-height: 1.66667;"><span data-v-545cf0ad="" class="code-line-container" style="display: flex; flex-shrink: 0; padding-right: 14px;"><span data-v-545cf0ad="" class="code-line"><span class="syntax-keyword" style="color: var(--syntax-keyword,var(--color-syntax-keywords));">let</span> devices <span class="syntax-operator">=</span> <span class="syntax-type" style="color: var(--syntax-type,var(--color-syntax-other-type-names));">MTLCopyAllDevices</span>()</span></span></code></pre></div></div></figure><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;">However, that function provides a list of GPUs that are available at that moment in time. To get the current list and register for device update notifications, provide a handler to Metal by calling the<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/2869731-mtlcopyalldeviceswithobserver" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">MTLCopy<wbr data-v-88c637be="">All<wbr data-v-88c637be="">Devices<wbr data-v-88c637be="">With<wbr data-v-88c637be="">Observer(_:<wbr data-v-88c637be="">_:)</code></a><span class="Apple-converted-space"> </span>function.</p><figure data-v-e05a7332="" id="3030772" style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; display: block; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;"><div data-v-545cf0ad="" data-syntax="swift" class="code-listing" data-v-e05a7332="" style="display: flex; flex-direction: column; min-height: 100%; border-radius: var(--code-border-radius,15px); overflow: hidden; filter: blur(0px); background: var(--background,var(--color-code-background)); color: var(--text,var(--color-code-plain)); border-color: var(--colors-grid,var(--color-grid)); border-width: var(--code-border-width,0); border-style: var(--code-border-style,solid);"><div data-v-545cf0ad="" class="container-general" style="display: flex; overflow: auto; flex-grow: 1;"><pre data-v-545cf0ad="" style="margin: 0px; padding: 8px 0px 8px 14px; font-size: 1em; font-weight: 400; font-style: normal; overflow: unset; white-space: pre; overflow-wrap: normal; display: flex; height: 75px; flex-grow: 1;"><code data-v-545cf0ad="" style="font-size: 0.88235rem; font-weight: 400; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: -0.027em; display: flex; flex-direction: column; white-space: pre; overflow-wrap: normal; flex-grow: 9999; line-height: 1.66667;"><span data-v-545cf0ad="" class="code-line-container" style="display: flex; flex-shrink: 0; padding-right: 14px;"><span data-v-545cf0ad="" class="code-line"><span class="syntax-keyword" style="color: var(--syntax-keyword,var(--color-syntax-keywords));">let</span> (devices, observer) <span class="syntax-operator">=</span> <span class="syntax-type" style="color: var(--syntax-type,var(--color-syntax-other-type-names));">MTLCopyAllDevicesWithObserver</span>() { (device, notification) <span class="syntax-keyword" style="color: var(--syntax-keyword,var(--color-syntax-keywords));">in</span></span></span><span data-v-545cf0ad="" class="code-line-container" style="display: flex; flex-shrink: 0; padding-right: 14px;"><span data-v-545cf0ad="" class="code-line">    <span class="syntax-keyword" style="color: var(--syntax-keyword,var(--color-syntax-keywords));">self</span>.device(device, issued: notification)</span></span><span data-v-545cf0ad="" class="code-line-container" style="display: flex; flex-shrink: 0; padding-right: 14px;"><span data-v-545cf0ad="" class="code-line">}</span></span></code></pre></div></div></figure><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;">Metal calls your handler to tell your app when the system adds or removes an<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/mtldevice" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">MTLDevice</code></a><span class="Apple-converted-space"> </span>from the system.</p><aside data-v-63fdad41="" aria-label="note" class="note" style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; display: block; margin-top: 1.6em; break-inside: avoid; border-radius: var(--aside-border-radius,15px); border-style: var(--aside-border-style,solid); border-width: var(--aside-border-width,1px 1px 1px 1px); padding: 0.94118rem; background-color: var(--color-aside-note-background); border-color: var(--color-aside-note-border); box-shadow: 0 0 1px 0 var(--color-aside-note-border) inset,0 0 1px 0 var(--color-aside-note-border); caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;"><p data-v-63fdad41="" class="label" style="margin: 0px; padding: 0px; font-size: 1rem; line-height: 1.52944; font-weight: 600; letter-spacing: -0.021em; font-family: var(--typography-html-font,&quot;SF Pro Text&quot;,system-ui,-apple-system,BlinkMacSystemFont,&quot;Helvetica Neue&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif); color: var(--color-aside-note);">Note</p><p data-v-63fdad41="" style="margin: 0.4em 0px 0px; padding: 0px;">Metal calls your app’s handler when a device may change its state in the future, such as when a person makes a safe disconnect request. For more information, see<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/gpu_devices_and_work_submission/multi-gpu_systems/handling_external_gpu_additions_and_removals" class="" data-v-63fdad41="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;">Handling External GPU Additions and Removals</a>.</p></aside><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;">Your app can deregister its observer when it no longer needs GPU device updates from the system by calling the<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/2869724-mtlremovedeviceobserver" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">MTLRemove<wbr data-v-88c637be="">Device<wbr data-v-88c637be="">Observer(_:)</code></a><span class="Apple-converted-space"> </span>function.</p><figure data-v-e05a7332="" id="3992592" style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; display: block; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;"><div data-v-545cf0ad="" data-syntax="swift" class="code-listing single-line" data-v-e05a7332="" style="display: flex; flex-direction: column; min-height: 100%; border-radius: 22px; overflow: hidden; filter: blur(0px); background: var(--background,var(--color-code-background)); color: var(--text,var(--color-code-plain)); border-color: var(--colors-grid,var(--color-grid)); border-width: var(--code-border-width,0); border-style: var(--code-border-style,solid);"><div data-v-545cf0ad="" class="container-general" style="display: flex; overflow: auto; flex-grow: 1;"><pre data-v-545cf0ad="" style="margin: 0px; padding: 8px 0px 8px 14px; font-size: 1em; font-weight: 400; font-style: normal; overflow: unset; white-space: pre; overflow-wrap: normal; display: flex; height: 25px; flex-grow: 1;"><code data-v-545cf0ad="" style="font-size: 0.88235rem; font-weight: 400; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: -0.027em; display: flex; flex-direction: column; white-space: pre; overflow-wrap: normal; flex-grow: 9999; line-height: 1.66667;"><span data-v-545cf0ad="" class="code-line-container" style="display: flex; flex-shrink: 0; padding-right: 14px;"><span data-v-545cf0ad="" class="code-line"><span class="syntax-type" style="color: var(--syntax-type,var(--color-syntax-other-type-names));">MTLRemoveDeviceObserver</span>(observer)</span></span></code></pre></div></div></figure><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;"></p><h3 data-v-1c6ef997="" id="3030770" style="font-style: normal; font-variant-caps: normal; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; color: rgb(29, 29, 31); font-size: 1.64706rem; line-height: 1.14286; font-weight: 600; letter-spacing: 0.007em; font-family: var(--typography-html-font,&quot;SF Pro Display&quot;,system-ui,-apple-system,BlinkMacSystemFont,&quot;Helvetica Neue&quot;,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif); caret-color: rgb(29, 29, 31); text-align: left;"><a data-v-1c6ef997="" href="https://developer.apple.com/documentation/metal/gpu_devices_and_work_submission/multi-gpu_systems/finding_multiple_gpus_on_an_intel-based_mac#3030770" class="header-anchor" aria-label="Scroll to section" style="color: inherit; text-decoration: none; position: relative; padding-right: 23px; display: inline-block;">Identify Each GPU by Type</a></h3><p style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 0.8em 0px 0px; padding: 0px; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;">Each GPU on a Mac computer’s system can be one of three types: integrated, discrete, or external. You can identify each<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/mtldevice" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">MTLDevice</code></a><span class="Apple-converted-space"> </span>instance’s type by inspecting its<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/mtldevice/1433409-islowpower" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">is<wbr data-v-88c637be="">Low<wbr data-v-88c637be="">Power</code></a><span class="Apple-converted-space"> </span>and<span class="Apple-converted-space"> </span><a href="https://developer.apple.com/documentation/metal/mtldevice/2889851-isremovable" class="" style="color: var(--colors-link,var(--color-link)); text-decoration: none;"><code data-v-88c637be="" style="font-size: 1em; font-weight: inherit; font-style: normal; font-family: &quot;SF Mono&quot;, SFMono-Regular, ui-monospace, Menlo, monospace; letter-spacing: 0px;">is<wbr data-v-88c637be="">Removable</code></a><span class="Apple-converted-space"> </span>properties.</p><figure data-v-e05a7332="" id="3992593" style="font-style: normal; font-variant-caps: normal; font-weight: 400; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 1.6em 0px 0px; padding: 0px; display: block; caret-color: rgb(29, 29, 31); color: rgb(29, 29, 31); font-family: &quot;SF Pro Text&quot;, system-ui, -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 17px; letter-spacing: -0.374px; text-align: left;"><div data-v-36e6df88="" class="table-wrapper" data-v-e05a7332="" style="overflow: auto;">

GPU Type | isLowPower | isRemovable
-- | -- | --
true | false
false | false
false | true

[Docs Related](https://developer.apple.com/documentation/metal/gpu_devices_and_work_submission/multi-gpu_systems/finding_multiple_gpus_on_an_intel-based_mac)

### Alternatives

As you can see, there are 2021 Intel-based Mac Pros on the market with costs reaching up to $70,000 that demonstrate remarkable performance when training on a single GPU using PyTorch. There are also many in the community who will continue to use MacBook Pros for a significant period. As such, it would be incredible to add support for multiple GPUs. Despite the advent of new ARM-based models, there remains extensive activity in the Intel sector, and we can expect support from Apple to continue for quite some time. A very straightforward issue to check would be whether the ARM or ARM64 system is single GPU, and if it's x86, does it have access to multiple GPUs.

### Additional context

_No response_

cc @kulinseth @albanD @malfet @DenisVieriu97 @razarmehr @abhudev