Implement CUDA 13 flags to parallelise device-code compilation#10735
Implement CUDA 13 flags to parallelise device-code compilation#10735Parsifal-2045 wants to merge 1 commit into
Conversation
- split-compile=0 tries to automatically divide heavy TUs into multiple parallel compilation units - threads=0 uses all available CPU cores for parallel compilation - jobserver allows parallel compilation to be integrated with make's jobserver, so that the number of parallel jobs is limited to the number of jobs make is allowed to run in parallel
|
A new Pull Request was created by @Parsifal-2045 for branch IB/CMSSW_20_1_X/master. @akritkbehera, @cmsbuild, @iarspider, @raoatifshad, @smuzaffar can you please review it and eventually sign? Thanks. |
|
cms-bot internal usage |
|
please test with cms-sw/cmssw-config#120 using full cmssw |
|
type ngt |
|
-1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-c386a5/54829/summary.html Failed External BuildI found compilation error when building: cwd: /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/BUILD/el9_amd64_gcc13/external/py3-torch-rocm/2.13.0-88987b092c5a3e143ba94a098698df9b/cmsdist-pip-src/torch-2.13.0
Building wheel for torch (pyproject.toml): finished with status 'error'
ERROR: Failed building wheel for torch
Failed to build torch
ERROR: Failed to build one or more wheels
error: Bad exit status from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/tmp/rpm-tmp.VE8OrC (%build)
RPM build warnings:
Macro expanded in comment on line 651: %{pkginstroot}/bin/*
Macro expanded in comment on line 656: %{pkginstroot}/${PYTHON3_LIB_SITE_PACKAGES}
|
|
please test with cms-sw/cmssw-config#120 using full cmssw |
|
Let's rebuild and see |
|
-1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-c386a5/54836/summary.html Failed External BuildI found compilation error when building: cwd: /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/BUILD/el9_amd64_gcc13/external/py3-torch-rocm/2.13.0-88987b092c5a3e143ba94a098698df9b/cmsdist-pip-src/torch-2.13.0
Building wheel for torch (pyproject.toml): finished with status 'error'
ERROR: Failed building wheel for torch
Failed to build torch
ERROR: Failed to build one or more wheels
error: Bad exit status from /data/cmsbld/jenkins/workspace/ib-run-pr-tests/testBuildDir/tmp/rpm-tmp.g3AYMe (%build)
RPM build warnings:
Macro expanded in comment on line 651: %{pkginstroot}/bin/*
Macro expanded in comment on line 656: %{pkginstroot}/${PYTHON3_LIB_SITE_PACKAGES}
|
|
I am a bit puzzled by the failure, it looks like nothing here should be compiled using |
|
Yes it's not. It's puzzling I am taking a look! |
|
@akritkbehera , the probklem is the way we build externals locally. For externals which are already installed on cvmfs we create symlinks in the build area and then torch fails when it tries to copy the aotriton libs (https://github.com/pytorch/pytorch/blob/aa034647b537aee3afaec28fd3054c566762d940/cmake/External/aotriton.cmake#L279-L284) . I would suggest to patch torch cmake file and avoid the install step e.g. the |
|
I have a PR open to fix py-torch-rocm. |
…g present. cms-sw#10735 (comment) Fix wheel building issue
|
REMINDER @mandrenguyen, @sextonkennedy, @ftenchini: This PR was tested with #10738, please check if they should be merged together |
|
please test with cms-sw/cmssw-config#120 |
|
yay it's building CMSSW! |
|
-1 Failed Tests: UnitTests The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:
You can see more details here: Failed Unit TestsI found 1 errors in the following unit tests: ---> test testHltDiff had ERRORS Comparison SummarySummary:
|
This PR implements a few new
nvccflags to speed-up device code compilation. In particular:I have performed some local measurements on a node equipped with 2 AMD EPYC 9534 using #51085 to pull about 25% of CMSSW and especially the
RecoTracker/PixelSeedingpackage as one of the slowest to compile for device. I have also disabled rocm compilation to isolate the effects on the CUDA side. I attach here the results from time for each compilation step (starting fromscram b cleanbefore every pass):Note: Requires cms-sw/cmssw-config#120 to be able to correctly parse the
--jobserverflag