Artem-B wrote:

> It's not unspecified per-se, it just picks the one the CUDA driver assigned 
> to ID zero, so it will correspond to the layman using a default device if 
> loaded into CUDA.

The default "fastest card first" is also somewhat flaky. First, the "default" 
enumeration order is affected by the environment (could be by PCI ID, or by 
"highest-performance-first") which adds another external parameter the user may 
or may not be aware of. The "highest performance first" is also known to be 
wrong. E.g. on my machine CUDA runtime was picking a puny newer card I used for 
graphics over a 2 orders of magnitude faster compute card.

> I think that it's much less intuitive currently where we'll just have it 
> default to sm_52

That would fall under the "any default choice for GPU will be wrong" and the 
implication that it's up to the user to explicitly provide the correct set of 
GPUs to target.

On the other hand, I'd be OK with providing `--offload-arch=native` translating 
into "compile for *all* present GPU variants", with a possibility to further 
adjust the selected set with the usual `--no-offload-arch-foo`, if the user 
needs to. This will at least produce code that will run on the machine where 
it's built, be somewhat consistent and is still adjustable by the user when the 
default choice will inevitably be wrong.



https://github.com/llvm/llvm-project/pull/79373
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to