Blame view

tsl_aiplatform/ai_platform/GpuRgbMemory.hpp 1.62 KB
fccbe006   Hu Chunming   初步完成从解码到算法处理,任务管理...
1
2
3
  #include<string>
  
  #include "../helpers/cuda_helper.h"
6e2b079e   Hu Chunming   编译通过
4
  #include "../helpers/timer.hpp"
fccbe006   Hu Chunming   初步完成从解码到算法处理,任务管理...
5
6
7
8
9
10
  
  using namespace std;
  
  class GpuRgbMemory{
  
  public:
6e2b079e   Hu Chunming   编译通过
11
       GpuRgbMemory(int _channel, int _width, int _height, string _id, string _gpuid, bool _isused){
fccbe006   Hu Chunming   初步完成从解码到算法处理,任务管理...
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
          channel = _channel;
          width = _width;
          height = _height;
          size = channel * width * height;
          isused = _isused;
          id = _id;
          gpuid = _gpuid;
          timestamp = helpers::timer::get_timestamp<std::chrono::milliseconds>();
  
          cudaSetDevice(atoi(gpuid.c_str()));
          CHECK(cudaMalloc((void **)&pHwRgb, size * sizeof(unsigned char)));
      }
  
      ~GpuRgbMemory(){
          if (pHwRgb) {
              cudaSetDevice(atoi(gpuid.c_str()));
              CHECK(cudaFree(pHwRgb));
              pHwRgb = nullptr;
          }
      }
      
      int getSize() {
          return size;
      }
      
      bool isIsused() {
          return isused;
      }
  
      void setIsused(bool _isused) {
          isused = _isused;
          // 更新时间戳
6e2b079e   Hu Chunming   编译通过
44
          timestamp = helpers::timer::get_timestamp<std::chrono::milliseconds>();
fccbe006   Hu Chunming   初步完成从解码到算法处理,任务管理...
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
      }
  
      string getId() {
          return id;
      }
  
      string getGpuId() {
          return gpuid;
      }
  
      unsigned char* getMem(){
          return pHwRgb;
      }
  
      long long getTimesstamp(){
          return timestamp;
      }
  
      int getWidth(){
          return width;
      }
  
      int getHeight(){
          return height;
      }
  
      int getChannel(){
          return channel;
      }
  
  private:
      int size;
      bool isused;
      string id;
      string gpuid;
      unsigned char * pHwRgb{nullptr};
      long long timestamp;
      int width{0};
      int height{0};
      int channel{3};
  };