Refactor to isolate staging buffer code.

[ROCm/hip commit: e7586adb33]
This commit is contained in:
Ben Sander
2016-03-17 00:20:56 -05:00
parent 0ae7bc7e14
commit fc27c61c58
5 changed files with 61 additions and 47 deletions
@@ -2,14 +2,13 @@
#include "hsa.h"
struct ihipDevice_t;
//-------------------------------------------------------------------------------------------------
struct StagingBuffer {
static const int _max_buffers = 4;
StagingBuffer(ihipDevice_t *device, size_t bufferSize, int numBuffers) ;
StagingBuffer(hc::accelerator &acc, size_t bufferSize, int numBuffers) ;
~StagingBuffer();
void CopyHostToDevice(void* dst, const void* src, size_t sizeBytes, hsa_signal_t *waitFor);
@@ -20,7 +19,8 @@ struct StagingBuffer {
private:
ihipDevice_t *_device;
hc::accelerator &_acc;
hsa_agent_t _hsa_agent;
size_t _bufferSize; // Size of the buffers.
int _numBuffers;
+2
View File
@@ -153,6 +153,8 @@ typedef enum hipError_t {
,hipErrorNoDevice ///< Call to hipGetDeviceCount returned 0 devices
,hipErrorNotReady ///< Indicates that asynchronous operations enqueued earlier are not ready. This is not actually an error, but is used to distinguish from hipSuccess (which indicates completion). APIs that return this error include hipEventQuery and hipStreamQuery.
,hipErrorUnknown ///< Unknown error.
,hipErrorRuntimeMemory ///< HSA runtime memory call returned error. Typically not seen in production systems.
,hipErrorRuntimeOther ///< HSA runtime call other than memory returned error. Typically not seen in production systems.
,hipErrorTbd ///< Marker that more error codes are needed.
} hipError_t;