llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-driver

Author: Yaxun (Sam) Liu (yxsamliu)

<details>
<summary>Changes</summary>

[HIP] Parallelize device cc1 jobs for offload arches

A common ROCm build can target around ten `--offload-arch=`
values. For a large single translation unit, the HIP device cc1 work
before clang-linker-wrapper can become a build-time bottleneck. Those
per-architecture jobs are independent, but the driver ran them serially,
so `--offload-jobs=` only helped the later wrapper work.

Borrow the parallel job mechanism used by clang-linker-wrapper for the
pre-wrapper HIP device cc1 jobs. HIP job construction marks eligible
compile and backend jobs with an offload parallel group. The generic
executor only consumes that opt-in metadata for adjacent jobs with
distinct bound architectures.

The parallel path is disabled for driver-side output modes and callbacks
so existing serial output handling is preserved. This is NFC for
non-offload compilation.



---
Full diff: https://github.com/llvm/llvm-project/pull/208254.diff


4 Files Affected:

- (modified) clang/include/clang/Driver/Job.h (+12-2) 
- (modified) clang/lib/Driver/Compilation.cpp (+163-2) 
- (modified) clang/lib/Driver/ToolChains/Clang.cpp (+22-2) 
- (added) clang/test/Driver/hip-parallel-device-cc1.hip (+9) 


``````````diff
The server is unavailable at this time. Please wait a few minutes before you 
try again.
``````````

</details>


https://github.com/llvm/llvm-project/pull/208254
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to