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
Follow-ups to "new Alpaka GPU framework" #40140
Comments
assign heterogeneous |
A new Issue was created by @makortel Matti Kortelainen. @Dr15Jones, @perrotta, @dpiparo, @rappoccio, @makortel, @smuzaffar can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
#40403 addresses the following
This comment is removed (as suggested in the further discussion in the issue description).
The ESProducer model is changed such that the per-backend ESProducer's
The transfer from host to device memory is automated (up to user having to provide an overload of |
This is done in #43204 |
This issue is to track the TODO items from #39428 (in the order of appearance)
README.md
(done in Add README for Alpaka modules #40690)FWCore/Utilities
, but are specific to CMS. Ideally the package of these files should not depend onFWCore/Framework
(which is the case forHeterogeneousCore/AlpakaCore
), but given the CMS-specificityHeterogeneousCore/AlpakaInterface
doesn't sound ideal either.HeterogeneousCore/AlpakaCore/interface/alpaka/ESDeviceProduct.h
HeterogeneousCore/AlpakaCore/interface/alpaka/typelookup.h
HeterogeneousCore/AlpakaInterface/interface/TransferToHost.h
device::Event::queue() const
anddevice::Record<T>::queue() const
return a non-const reference because Alpaka functions do not accept a temporary (copy) as an argumentdevice::Event
's device-sideemplace()
andput()
do not returnedm::OrphanHandle
, while the host-side overloads of the functions do. The implication is that for time being the EDProducers can not createedm::Ref
(etc) on the device-side products they produce. But this way of dealing with the memory spaces would need a different kind ofRef
infrastructure anyway (that would be aware of the memory space)ALPAKA_ACCELERATOR_NAMESPACE::ProducerBase
would benefit from overloadinglabelsForToken()
for thedevice::
tokensDeviceProduct
branch(es) as well? (done in Simplify Alpaka ESProducer model by making the data copies to device implicit #40403)$SCRAM_ARCH
of the given release.TransferToHost
specialization is missing (comment removed in Simplify Alpaka ESProducer model by making the data copies to device implicit #40403)ALPAKA_ACCELERATOR_NAMESPACE::EDMetadata
destructor (inherited fromcms::cuda::ProductBase
destructor)ALPAKA_ACCELERATOR_NAMESPACE::EDMetadata::synchronize()
that the data product and the consumer reside in the same device?cms::cuda::chooseDevice()
)cms::alpakatools::TransferToHost
is not specialized for a device-side data product type, the compilation error (from GCC) is about "indeterminate type". With some trickery it might be possible to give a better compilation error message, but I'm not sure if it would be worth of the effort.produceHost()
could, in principle, use pinned and cached memory allocationsproduceHost()
andproduceDevice()
. Host-side data reformatting gets duplicated, and also on host backends theproduceDevice()
needs to copy the data, or have an explicit#ifdef
for reusing the input data product. Could use pinned host memory. Straightforward to express in a portable configuration.produceDevice()
associating the cached memory allocation to the Queue is strictly speaking incorrect, because the lifetime of ESProducts can be fully controlled by the framework (there can't be any asynchronous activity going on anymore when the ESProduct is deleted at the end of IOV). Connects to New Heterogeneous Memory Pool #37952 / [Do Not Merge] New "CUDA" Memory Pool [12.4.X] #39623.HeterogeneousCore/AlpakaTest/test/BuildFile.xml
declares dependence oncuda
only to makeGPU_X
IBs to run the tests on GPU machine. The dependence should be changed toalpaka
once the testing infrastructure runs also tests depending onalpaka
onGPU_X
IBs (done in Make AlpakaTest tests to use their dependencies for controlling their execution, and extend module tests to ROCm. #43204)HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py
can be simplified once an implementation of the "module maker approach" for portable configuration gets in (done in Enable "alternative module loading" approach for Alpaka modules #40564)HeterogeneousCore/AlpakaTest/test/writer.py
can be simplified once Allow SwitchProducer cases to declare different transient products #40104 gets inThe text was updated successfully, but these errors were encountered: