-
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
Add a test for CUDA library build rules #40605
Conversation
@makortel this almost works - it needs only a fix in the build command. |
@smuzaffar at least locally, this fails to link because scram does not pass <use name="HeterogeneousCore/CUDATestDeviceLib"/> The resulting command is >> Building binary testCudaDeviceAddition
/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/external/gcc/11.2.1-f9b9dfdd886f71cd63f5538223d8f161/bin/c++ -O2 -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -std=c++1z -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -msse3 -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-deprecated-copy -Wno-unused-parameter -Wunused -Wparentheses -Wno-deprecated -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -DUSE_CMS_DEPRECATED -DBOOST_DISABLE_ASSERTS -fPIC tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testDeviceAddition.cu.o tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testCudaDeviceAddition_cudadlink.o -Wl,-E -Wl,--hash-style=gnu -L/data/user/fwyzard/CMSSW_13_0_X_2023-01-21-1100/biglib/el8_amd64_gcc11 -L/data/user/fwyzard/CMSSW_13_0_X_2023-01-21-1100/lib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc11/cms/cmssw-patch/CMSSW_13_0_X_2023-01-21-1100/biglib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc11/cms/cmssw-patch/CMSSW_13_0_X_2023-01-21-1100/lib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/week0/el8_amd64_gcc11/cms/cmssw-patch/CMSSW_13_0_X_2023-01-21-1100/external/el8_amd64_gcc11/lib -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_X_2023-01-19-2300/lib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/cms/cmssw/CMSSW_13_0_X_2023-01-19-2300/biglib/el8_amd64_gcc11 -L/cvmfs/cms-ib.cern.ch/sw/x86_64/nweek-02768/el8_amd64_gcc11/external/cuda/11.5.2-66a9473808e7d5863d5bbec0824e2c4a/lib64/stubs -lcudart -lcudadevrt -lnvToolsExt -lcuda -o tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testCudaDeviceAddition and it fails with
If I add by by hand $ ./tmp/el8_amd64_gcc11/src/HeterogeneousCore/CUDATestDeviceLib/test/testCudaDeviceAddition/testCudaDeviceAddition
===============================================================================
All tests passed (2097152 assertions in 1 test case) |
please test |
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-40605/33862
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
@fwyzard , cms-sw/cmsdist#8264 should fix this issue. Problem was that there was a restrictions that only packages with at least one |
Understood... thanks! |
43491cb
to
ba444f4
Compare
please test with cms-sw/cmsdist#8264 |
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-40605/33864
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
ba444f4
to
e30732b
Compare
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-40605/33979
|
+heterogeneous |
This pull request is fully signed and it will be integrated in one of the next master IBs after it passes the integration tests. This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @rappoccio (and backports should be raised in the release meeting by the corresponding L2) |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-8dc05e/30294/summary.html Comparison SummarySummary:
GPU Comparison SummarySummary:
|
+1
|
PR description:
This PR adds new packages to test the implementation and usage of CUDA libraries for device code in CMSSW plugins and executables.
The package
HeterogeneousTest/CUDADevice
implements a library that defines and exports CUDA device-only functions, and a plugin and test that use them.The package
HeterogeneousTest/CUDAKernel
implements a library that imports device functions fromHeterogeneousTest/CUDADevice
to define and export CUDA kernels, and a plugin and test that use them.The package
HeterogeneousTest/CUDAWrapper
implements a library that imports kernels fromHeterogeneousTest/CUDAKernel
to define and export host-only wrappers around them, usable by non-CUDA libraries, plugins and applications, and implements a plugin and test that use them.The package
HeterogeneousTest/CUDAOpaque
implements a library that use the wrappers fromHeterogeneousTest/CUDAKernel
to define and export host-only functions around the whole CUDA section, usable by libraries, plugins and applications that are not CUDA-aware, and implements a plugin and test that use them.PR validation:
The new unit tests compile and pass.