-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify declaration of making Alpaka-based library to depend on the main library of the same package #45415
Comments
assign core, heterogeneous |
New categories assigned: core,heterogeneous @Dr15Jones,@fwyzard,@makortel,@makortel,@smuzaffar you have been requested to review this Pull request/Issue and eventually sign? Thanks |
cms-bot internal usage |
A new Issue was created by @makortel. @Dr15Jones, @antoniovilela, @makortel, @rappoccio, @sextonkennedy, @smuzaffar can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
On a further thought
isn't this happening already? I mean, for example in, cmssw/CondFormats/EcalObjects/BuildFile.xml Lines 1 to 19 in e232a9b
aren't the per-Alpaka-backend libraries linked to all the dependencies declared above anyhow? At least in 14_1_0_pre5 I see
|
@smuzaffar @fwyzard Any thoughts? As far as I can tell, making each per-Alpaka-backend library to depend on the main library of the same package would not make the dependencies of the per-Alpaka-backend libraries any worse they are already. |
If adding the dependency by default does not actually add more dependencies to the alpaka-based libraries, I would be in favour of doing it. We should start removing the CUDA-only support early in 14.2.x, which will remove some of the more problematic dependencies. In addition |
As a test, I've checked out the full CMSSW_14_1_0_pre6, added <use name="..." for="alpaka"/> to all packages that build alpaka libraries, and rebuilt all packages. Comparing the dependencies of the rebuilt alpaka libraries with the original ones, the only difference is the extra dependency on the non-alpaka library itself - all other dependencies were there already, as @makortel observed. For example, for $ git diff RecoLocalTracker/SiPixelRecHits diff --git a/RecoLocalTracker/SiPixelRecHits/BuildFile.xml b/RecoLocalTracker/SiPixelRecHits/BuildFile.xml
index 62787f4c989c..0654e442fbee 100644
--- a/RecoLocalTracker/SiPixelRecHits/BuildFile.xml
+++ b/RecoLocalTracker/SiPixelRecHits/BuildFile.xml
@@ -15,6 +15,7 @@
<use name="HeterogeneousCore/CUDAUtilities"/>
<use name="RecoLocalTracker/ClusterParameterEstimator"/>
<flags ALPAKA_BACKENDS="1"/>
+<use name="RecoLocalTracker/SiPixelRecHits" for="alpaka"/>
<export>
<lib name="1"/>
</export> The impact on the libraries is $ ldd $CMSSW_RELEASE_BASE/lib/$SCRAM_ARCH/libRecoLocalTrackerSiPixelRecHitsROCmAsync.so | sed -e's/ (0x\w\+)//' | sort > original.dep
$ ldd $CMSSW_BASE/lib/$SCRAM_ARCH/libRecoLocalTrackerSiPixelRecHitsROCmAsync.so | sed -e's/ (0x\w\+)//' | sort > modified.dep
$ diff -u original.dep modified.dep --- original.dep 2024-08-13 10:54:58.524045103 +0200
+++ modified.dep 2024-08-13 10:55:03.804125494 +0200
@@ -95,6 +95,7 @@
libPhysics.so => /data/cmssw/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre6/external/el8_amd64_gcc12/lib/libPhysics.so
libRIO.so => /data/cmssw/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre6/external/el8_amd64_gcc12/lib/libRIO.so
libRecoLocalTrackerClusterParameterEstimator.so => /data/user/fwyzard/test_alpaka_link/CMSSW_14_1_0_pre6/lib/el8_amd64_gcc12/libRecoLocalTrackerClusterParameterEstimator.so
+ libRecoLocalTrackerSiPixelRecHits.so => /data/user/fwyzard/test_alpaka_link/CMSSW_14_1_0_pre6/lib/el8_amd64_gcc12/libRecoLocalTrackerSiPixelRecHits.so
libRint.so => /data/cmssw/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre6/external/el8_amd64_gcc12/lib/libRint.so
libSmatrix.so => /data/cmssw/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre6/external/el8_amd64_gcc12/lib/libSmatrix.so
libThread.so => /data/cmssw/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre6/external/el8_amd64_gcc12/lib/libThread.so The only difference is the explicit dependency on |
@fwyzard , this was closed in favor of CMSSW_14_1_ASNEEDED_X IBs which are build with |
Where can I find the |
We built those on demand, I just have restarted one (it should be available in few hours) and also changed the configuration to automatically build 3 times a week |
@fwyzard , CMSSW_14_1_ASNEEDED_X_2024-08-12-2300 is available now |
Thanks. |
@smuzaffar Would it be feasible to make each per-Alpaka-backend library to depend on the main library? (to simplify the |
@makortel , yes By the way, with #46684 ( and corresponding cmsdist PR) we should be able to enable |
Spinoff from #45285 (comment)
Question
Answer
When the two items have been completed, we could try to simplify how to make the Alpaka-based libraries of a package to depend on the main library of the same package.
The text was updated successfully, but these errors were encountered: