reorganize files to prepare for MIOpen integration (#51)

* change olc cmake

* adding online compile to fwd-v4r5r2

* update scripts

* remane fwd-v4r5r2 to fwd-v6r1

* clean up
This commit is contained in:
Chao Liu
2021-07-18 00:43:05 -05:00
committed by GitHub
parent fbdf4332c7
commit 1264925422
110 changed files with 2992 additions and 4982 deletions

View File

@@ -0,0 +1,67 @@
#include "device.hpp"
DeviceMem::DeviceMem(std::size_t mem_size) : mMemSize(mem_size)
{
hipGetErrorString(hipMalloc(static_cast<void**>(&mpDeviceBuf), mMemSize));
}
void* DeviceMem::GetDeviceBuffer() { return mpDeviceBuf; }
void DeviceMem::ToDevice(const void* p)
{
hipGetErrorString(
hipMemcpy(mpDeviceBuf, const_cast<void*>(p), mMemSize, hipMemcpyHostToDevice));
}
void DeviceMem::FromDevice(void* p)
{
hipGetErrorString(hipMemcpy(p, mpDeviceBuf, mMemSize, hipMemcpyDeviceToHost));
}
DeviceMem::~DeviceMem() { hipGetErrorString(hipFree(mpDeviceBuf)); }
struct KernelTimerImpl
{
KernelTimerImpl()
{
hipEventCreate(&mStart);
hipEventCreate(&mEnd);
}
~KernelTimerImpl()
{
hipEventDestroy(mStart);
hipEventDestroy(mEnd);
}
void Start()
{
hipDeviceSynchronize();
hipEventRecord(mStart, 0);
}
void End()
{
hipEventRecord(mEnd, 0);
hipEventSynchronize(mEnd);
}
float GetElapsedTime() const
{
float time;
hipEventElapsedTime(&time, mStart, mEnd);
return time;
}
hipEvent_t mStart, mEnd;
};
KernelTimer::KernelTimer() : impl(new KernelTimerImpl()) {}
KernelTimer::~KernelTimer() {}
void KernelTimer::Start() { impl->Start(); }
void KernelTimer::End() { impl->End(); }
float KernelTimer::GetElapsedTime() const { return impl->GetElapsedTime(); }