|
|
|
@@ -44,15 +44,13 @@ class GpuQueue { |
|
|
|
|
|
|
|
void RegisterRelease(const std::function<void(void *)> &func) { host_release_ = func; } |
|
|
|
|
|
|
|
inline bool IsEmpty() const { return size_ == 0; } |
|
|
|
inline bool IsFull() const { return size_ == capacity_; } |
|
|
|
inline bool IsEmpty() const { return head_ == tail_; } |
|
|
|
inline bool IsFull() const { return head_ == ((tail_ + 1) % (capacity_)); } |
|
|
|
|
|
|
|
BlockQueueStatus_T Push(const std::vector<DataItemGpu> &data); |
|
|
|
BlockQueueStatus_T Front(void **ptr, size_t *len) const; |
|
|
|
BlockQueueStatus_T Pop(); |
|
|
|
bool Destroy(); |
|
|
|
size_t Size() { return size_; } |
|
|
|
size_t Capacity() { return capacity_; } |
|
|
|
|
|
|
|
private: |
|
|
|
struct NodeInfo { |
|
|
|
@@ -65,7 +63,6 @@ class GpuQueue { |
|
|
|
size_t tail_; |
|
|
|
std::vector<size_t> shape_; |
|
|
|
size_t len_; |
|
|
|
size_t size_; |
|
|
|
size_t capacity_; |
|
|
|
cudaStream_t stream_; |
|
|
|
std::unique_ptr<NodeInfo[]> node_info_; |
|
|
|
@@ -86,8 +83,6 @@ class BlockingQueue { |
|
|
|
BlockQueueStatus_T Front(void **ptr, size_t *len); |
|
|
|
BlockQueueStatus_T Pop(); |
|
|
|
bool Destroy(); |
|
|
|
size_t Size() { return queue_->Size(); } |
|
|
|
size_t Capacity() { return queue_->Capacity(); } |
|
|
|
|
|
|
|
private: |
|
|
|
std::mutex mutex_; |
|
|
|
|