[clang] [llvm] [HIP] add --offload-compression-level= option (PR #83605)

Yaxun Liu via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 7 07:29:33 PST 2024


yxsamliu wrote:

Here is the size distribution of individual code object file (each code object file is for one GPU arch, and a fat binary contains a bunch of code object files, therefore the optimal compression parameter is mostly related to code object file size ).

| Bin Size      | Count | Percentage | Cumulative Percentage | Example File                                                                                                  |
|---------------|-------|------------|-----------------------|---------------------------------------------------------------------------------------------------------------|
| 0-16K         | 961   | 12.31%     | 12.31%                | `librocrand.so#offset=27172864&size=0`                                                                        |
| 16K-32K       | 602   | 7.71%      | 20.03%                | `librocalution_hip.so#offset=35438592&size=27264`                                                             |
| 32K-64K       | 1463  | 18.75%     | 38.77%                | `librocalution_hip.so#offset=32391168&size=37808`                                                             |
| 64K-128K      | 1134  | 14.53%     | 53.31%                | `libMIOpen.so#offset=566800384&size=98984`                                                                    |
| 128K-256K     | 897   | 11.49%     | 64.80%                | `libMIOpen.so#offset=562827264&size=141624`                                                                   |
| 256K-512K     | 977   | 12.52%     | 77.32%                | `libMIOpen.so#offset=659791872&size=504120`                                                                   |
| 512K-1M       | 482   | 6.18%      | 83.50%                | `libMIOpen.so#offset=567713792&size=545032`                                                                   |
| 1M-2M         | 443   | 5.68%      | 89.17%                | `libMIOpen.so#offset=569909248&size=1134632`                                                                  |
| 2M-4M         | 412   | 5.28%      | 94.45%                | `librocrand.so#offset=27172864&size=2650696`                                                                  |
| 4M-8M         | 251   | 3.22%      | 97.67%                | `librocblas.so#offset=1671168&size=5344160`                                                                   |
| 8M-16M        | 136   | 1.74%      | 99.41%                | `librocblas.so#offset=389632000&size=15117200`                                                                |
| 16M-32M       | 41    | 0.53%      | 99.94%                | `librccl.so#offset=135168&size=20252464`                                                                      |
| 32M-64M       | 1     | 0.01%      | 99.95%                | `TensileLibrary_Type_HH_HPA_Contraction_l_Alik_Bljk_Cijk_Dijk_gfx90a.co`                                     |
| 64M-128M      | 4     | 0.05%      | 100.00%               | `TensileLibrary_Type_HH_HPA_ExperimentalGrid_Contraction_l_Ailk_Bjlk_Cijk_Dijk_CU104_gfx90a.co`              |

>From the table we can see 99.9% of code object files are below 32MB. Also all code object files are below 128MB.


https://github.com/llvm/llvm-project/pull/83605


More information about the cfe-commits mailing list