This repository has been archived by the owner on Dec 9, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #314 from SegmentLinking/alpaka_upgrade
Move to Most Recent Alpaka Version + Newest Caching Allocator
- Loading branch information
Showing
20 changed files
with
280 additions
and
214 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -122,9 +122,9 @@ cd CMSSW_13_0_0_pre4/src | |
cmsenv | ||
git cms-init | ||
git remote add SegLink [email protected]:SegmentLinking/cmssw.git | ||
git fetch SegLink CMSSW_13_0_0_pre4_LST_X | ||
git fetch SegLink CMSSW_13_0_0_pre4_LST_X_alpaka | ||
git cms-addpkg RecoTracker Configuration | ||
git checkout CMSSW_13_0_0_pre4_LST_X | ||
git checkout CMSSW_13_0_0_pre4_LST_X_alpaka | ||
cat <<EOF >lst.xml | ||
<tool name="lst" version="1.0"> | ||
<client> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#ifndef HeterogeneousCore_AlpakaInterface_interface_CopyToDevice_h | ||
#define HeterogeneousCore_AlpakaInterface_interface_CopyToDevice_h | ||
|
||
// TODO: this utility class is specific to CMSSW, but needs to be in a | ||
// package that is suitable as DataFormat dependence | ||
|
||
namespace lst::alpakatools { | ||
/** | ||
* This class template needs to be specialized for each host-side | ||
* EventSetup data product that should be implicitly copied to the | ||
* device memory. The specialization is expected to define static | ||
* copyAsync() function as in the following example | ||
* | ||
* \code | ||
* template <> | ||
* struct CopyToDevice<ExampleHostProduct> { | ||
* template <typename TQueue> | ||
* static auto copyAsync(TQueue& queue, ExampleHostProduct const& hostData) { | ||
* // construct ExampleDeviceProduct corresponding the device of the TQueue | ||
* // asynchronous copy hostData to the ExampleDeviceProduct object | ||
* // return ExampleDeviceProduct object by value | ||
* } | ||
* }; | ||
* \endcode | ||
* | ||
* The copyAsync() function should not explicitly synchronize the | ||
* queue. The ExampleHostProduct and ExampleDevicxeProduct can be the | ||
* same type, if they internally are able to handle the memory | ||
* allocation difference between host and device. | ||
*/ | ||
template <typename THostData> | ||
struct CopyToDevice; | ||
} // namespace lst::alpakatools | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
#ifndef HeterogeneousCore_AlpakaInterface_interface_CopyToHost_h | ||
#define HeterogeneousCore_AlpakaInterface_interface_CopyToHost_h | ||
|
||
// TODO: this utility class is specific to CMSSW, but needs to be in a | ||
// package that is suitable as DataFormat dependence | ||
|
||
namespace lst::alpakatools { | ||
/** | ||
* This class template needs to be specialized for each device-side | ||
* Event data product so that the framework can implicitly copy the | ||
* device-side data product to the host memory. The specialization | ||
* is expected to define static copyAsync() function as in the | ||
* following example | ||
* | ||
* \code | ||
* template <> | ||
* struct CopyToHost<ExampleDeviceProduct> { | ||
* template <typename TQueue> | ||
* static ExampleHostProduct copyAsync(TQueue& queue, ExampleDeviceProduct const& deviceData) { | ||
* // construct ExampleHostProduct | ||
* // asynchronous copy deviceData to the ExampleHostProduct object | ||
* // return ExampleHostProduct object by value | ||
* } | ||
* }; | ||
* \endcode | ||
* | ||
* The copyAsync() function should not explicitly synchronize the | ||
* queue. The ExampleDeviceProduct and ExampleHostProduct can be the | ||
* same type, if they internally are able to handle the memory | ||
* allocation difference between host and device. | ||
*/ | ||
template <typename TDeviceData> | ||
struct CopyToHost; | ||
} // namespace lst::alpakatools | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.