[llvm-dev] Clang option to provide list of target-subarchs.
Rodgers, Gregory via llvm-dev
llvm-dev at lists.llvm.org
Mon Feb 6 18:39:32 PST 2017
There are at least four clang frontends for offloading to accelerators:
1 Cuda clang 2 OpenMP 3 HCC and 4 OpenCL. These frontends will
want to embed object code for multiple offload targets into a single
application binary to provide portability across different subarchitectures
(e.g. sm_35, sm_50) and across different architectures (e.g nvptx64,amdgcn).
Problem: Different frontends are using different flags to provide a
list of subarchitectures. For example, cuda clang repeats the flag
“--cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_50” and HCC uses
“--amdgpu-target=gfx701 --amdgpu-target=gfx802”.
We propose a common clang flag to provide a list of target
subarchitectures called “target-subarchs”. For example,
--target-subarchs=sm_35,sm_50,gfx701,gfx802
In discussions with HCC and OpenMP maintainers, we believe a new
flag name would have these requirements:
end in “s” because it is a list;
not have vendor specific names like cuda and amd;
not contain “gpu” because offloading may extend to non-gpu archs;
avoid “arch” by itself so as not to be confused with first field of a triple;
and not collide with existing flags to allow both options.
"--target-subarchs" satisfies all the above. Comments?
Greg Rodgers
More information about the llvm-dev
mailing list