EXSWHTEC-364 - Implement tests for hipMemPoolSetGetAccess and hipMemPoolSetGetAttribute APIs (#435)
Change-Id: I9a9bd22f99e2be60608d50fe649e92b3b267f655
Este cometimento está contido em:
cometido por
Rakesh Roy
ascendente
26a5250673
cometimento
7ffbf7f76b
@@ -144,6 +144,14 @@ THE SOFTWARE.
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup StreamOTest Ordered Memory Allocator
|
||||
* @{
|
||||
* This section describes the tests for Stream Ordered Memory Allocator functions of HIP runtime
|
||||
* API.
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup StreamTest Stream Management
|
||||
* @{
|
||||
|
||||
@@ -346,3 +346,45 @@ class StreamsGuard {
|
||||
private:
|
||||
std::vector<hipStream_t> streams_;
|
||||
};
|
||||
|
||||
enum class MemPools { dev_default, created };
|
||||
|
||||
class MemPoolGuard {
|
||||
public:
|
||||
MemPoolGuard(const MemPools mempool_type, int device,
|
||||
hipMemAllocationHandleType handle_type = hipMemHandleTypeNone)
|
||||
: mempool_type_{mempool_type}, device_{device}, handle_type_{handle_type} {
|
||||
switch (mempool_type_) {
|
||||
case MemPools::dev_default:
|
||||
HIP_CHECK(hipDeviceGetDefaultMemPool(&mempool_, device_));
|
||||
break;
|
||||
case MemPools::created:
|
||||
hipMemPoolProps pool_props;
|
||||
pool_props.allocType = hipMemAllocationTypePinned;
|
||||
pool_props.handleTypes = handle_type_;
|
||||
pool_props.location.type = hipMemLocationTypeDevice;
|
||||
pool_props.location.id = device_;
|
||||
pool_props.win32SecurityAttributes = nullptr;
|
||||
memset(pool_props.reserved, 0, sizeof(pool_props.reserved));
|
||||
|
||||
HIP_CHECK(hipMemPoolCreate(&mempool_, &pool_props));
|
||||
}
|
||||
}
|
||||
|
||||
MemPoolGuard(const MemPoolGuard&) = delete;
|
||||
MemPoolGuard(MemPoolGuard&&) = delete;
|
||||
|
||||
~MemPoolGuard() {
|
||||
if (mempool_type_ == MemPools::created) {
|
||||
static_cast<void>(hipMemPoolDestroy(mempool_));
|
||||
}
|
||||
}
|
||||
|
||||
hipMemPool_t mempool() const { return mempool_; }
|
||||
|
||||
private:
|
||||
const MemPools mempool_type_;
|
||||
int device_;
|
||||
hipMemAllocationHandleType handle_type_;
|
||||
hipMemPool_t mempool_;
|
||||
};
|
||||
|
||||
Criar uma nova questão referindo esta
Bloquear um utilizador