<div dir="ltr"><div dir="ltr">Thanks guys<div><br></div><div>Defining CUDA_ARCH on non-nvptx architectures is definitely bad. I think Ron has a test case that used CUDA_ARCH to test for running on nvptx. I'm trying to stop amdgcn defining it for openmp at present.</div><div><br></div><div>> I would suggest we keep __CUDA_ARCH__ and introduce __AMDGCN_ARCH__ as needed.</div></div><div dir="ltr"><br></div><div dir="ltr">That sounds better, with the proviso that nvptx shouldn't define AMDGCN_ARCH and amdgcn shouldn't define CUDA_ARCH.</div><div dir="ltr"><br></div><div dir="ltr">We kind of conflate cuda and nvptx. Perhaps the macro should be NVTPX_ARCH instead of CUDA_ARCH?<br><div><br></div><div>There may be no problem here. Defining CUDA macros for openmp seemed weird, but I've since learned that cuda intrinsics work within openmp target regions for nvptx and that seems useful.</div><div><br></div><div>Thanks,</div><div><br></div><div>Jon</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 22, 2020 at 6:19 PM Johannes Doerfert <<a href="mailto:johannesdoerfert@gmail.com">johannesdoerfert@gmail.com</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"><br>
On 7/22/20 12:15 PM, Hal Finkel via Openmp-dev wrote:<br>
><br>
> On 7/22/20 11:34 AM, Jon Chesterfield via Openmp-dev wrote:<br>
>> Discovered by accident while looking into a bug for Ron (cc'd).<br>
>><br>
>> OpenMP running on nvptx defines the __CUDA_ARCH__ macro. Do we think <br>
>> it should? OpenMP target offloading is somewhat implemented in terms <br>
>> of cuda but that seems incidental.<br>
><br>
><br>
> Shouldn't it do this only when compiling device code for NVIDIA <br>
> architectures?<br>
><br>
Yes, I implicitly assumed that given that we only compile for NVIDIA <br>
right now.<br>
<br>
FWIW, I don't assume __CUDA_ARCH__ to be present for non-NVIDIA targets.<br>
<br>
<br>
<br>
>  -Hal<br>
><br>
><br>
>><br>
>> I'd like a __GPU_ARCH__ macro which expands to something useful for <br>
>> nvptx, amdgcn, other. And to not define CUDA_ARCH when compiling <br>
>> openmp offloading code.<br>
>><br>
>> Thoughts?<br>
>><br>
>> Jon<br>
>><br>
>> _______________________________________________<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>
><br>
><br>
> _______________________________________________<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></div>