jhuber6 added a comment.

In D137154#3918949 <https://reviews.llvm.org/D137154#3918949>, @bader wrote:

> Is binary size a concern here? NVIDIA, AMD and Intel GPUs are already have ~ 
> 20 different architectures each, so I want my app/library to run on any GPU 
> from these vendors (which is quite reasonable expectation), I'll need to 
> have/distribute ~ 60 different binaries. libdevice, libm, libc are quite 
> small, but other apps (e.g. ML frameworks) might be quite large, so that 
> distributed binary size is important to consider.

Yes, this probably would become untenable with really large sizes. Compression 
is always an option considering that these would be highly similar, we'd just 
need some way to check if the data stored at the `LLVM_OFFLOADING` section is 
some compressed format and extract it to a new buffer before doing linking. A 
more esoteric option would be to make a tool that takes in the LLVM-IR 
generated for each architecture and tries to unify it, adding branches where 
they differ and guard these with some flags that make the machine translator 
ignore them. Generally I don't think that manually searching for compatibility 
is a good longterm solution for libraries so we could look into alternative 
means (it's required for executables however).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D137154/new/

https://reviews.llvm.org/D137154

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to