[PATCH] D137154: Adding nvvm_reflect clang builtin

Joseph Huber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 11 09:09:54 PST 2022


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



More information about the cfe-commits mailing list