<div dir="ltr"><div>Vulkan can be an alternative.<br></div><div><a href="https://www.phoronix.com/scan.php?page=news_item&px=Vulkan-SDK-For-Apple">https://www.phoronix.com/scan.php?page=news_item&px=Vulkan-SDK-For-Apple</a></div><div>Ye<br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">===================<br>
Ye Luo, Ph.D.<br>Computational Science Division & Leadership Computing Facility<br>
Argonne National Laboratory</div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 19, 2021 at 4:08 PM GRISMER, MATTHEW J CIV USAF AFMC AFRL/RQVC via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org">openmp-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div style="overflow-wrap: break-word;" lang="EN-US">
<div class="gmail-m_-4085724492141433391WordSection1">
<div style="border-color:rgb(181,196,223) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in">
<p class="MsoNormal" style="margin-bottom:12pt"><b><span style="font-size:12pt;color:black">From:
</span></b><span style="font-size:12pt;color:black">GRISMER, MATTHEW J CIV USAF AFMC AFRL/RQVC <<a href="mailto:matthew.grismer@us.af.mil" target="_blank">matthew.grismer@us.af.mil</a>><br>
<b>Date: </b>Tuesday, October 19, 2021 at 4:24 PM<br>
<b>To: </b>Johannes Doerfert <<a href="mailto:johannesdoerfert@gmail.com" target="_blank">johannesdoerfert@gmail.com</a>>, <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br>
<b>Cc: </b>openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><br>
<b>Subject: </b>Re: [Non-DoD Source] Re: [llvm-dev] llvm OpenMP support for Apple Silicon<u></u><u></u></span></p>
</div>
<p class="MsoNormal">Johannes,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">According to the Apple documentation, you access the GPU via their Metal API.  Metal supports computation as well as graphics acceleration.  Digging a little deeper, kernels that run on the GPU are written in Metal Shading Language, which
 is a variant of C++ designed for GPUs.  The preparatory stuff to get the kernel running on the GPU is all done through a Metal Objective-C/C++ object which is tied to the particular device you want to use.  With that object you get a reference to your kernel
 function(s), setup a pipeline (converts function to executable code), create a queue, create data buffers and load data, create a command buffer and encode commands, specify thread count and group size, and commit the queue to execute it.  Somewhat similar
 to how SYCL works, at least from what I’ve read.  Since Apple uses LLVM/Clang for their system compiler, I assume it is also used to compile for the GPU.  Anyway, the short answer to the question appears to be OpenMP offload would need to be implemented using
 Apple’s Metal API.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Matt<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-color:rgb(181,196,223) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in">
<p class="MsoNormal" style="margin-bottom:12pt"><b><span style="font-size:12pt;color:black">From:
</span></b><span style="font-size:12pt;color:black">Johannes Doerfert <<a href="mailto:johannesdoerfert@gmail.com" target="_blank">johannesdoerfert@gmail.com</a>><br>
<b>Date: </b>Saturday, October 16, 2021 at 12:30 PM<br>
<b>To: </b>GRISMER, MATTHEW J CIV USAF AFMC AFRL/RQVC <<a href="mailto:matthew.grismer@us.af.mil" target="_blank">matthew.grismer@us.af.mil</a>>, <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br>
<b>Cc: </b>openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><br>
<b>Subject: </b>[Non-DoD Source] Re: [llvm-dev] llvm OpenMP support for Apple Silicon<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal">Hi Matt,<br>
<br>
not that I'm aware of any ongoing effort.<br>
<br>
Though, I'm not an expert on Apple hardware (or software for that matter).<br>
How would you program them right now?<br>
Does LLVM have code generation capabilities for those GPUs?<br>
<br>
Depending on the answers it might be reasonable to add OpenMP offloading <br>
support (or not).<br>
<br>
~ Johannes<br>
<br>
<br>
On 10/15/21 12:42, GRISMER, MATTHEW J CIV USAF AFMC AFRL/RQVC via <br>
llvm-dev wrote:<br>
> Hi,<br>
><br>
> I'm interested in exploring Apple Silicon performance with computational fluid dynamic codes, in particular codes that take advantage of OpenMP offload to accelerate performance.  Are there any plans to support OpenMP offload to the integrated GPU in Apple
 Silicon processors?<br>
><br>
> Thanks.<br>
><br>
> Matt<br>
><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><u></u><u></u></p>
</div>
</div>
</div>

_______________________________________________<br>
Openmp-dev mailing list<br>
<a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><br>
</blockquote></div>