gpu_hal.h
Go to the documentation of this file.
1 /*
2 * ECVL - European Computer Vision Library
3 * Version: 0.3.4
4 * copyright (c) 2021, Università degli Studi di Modena e Reggio Emilia (UNIMORE), AImageLab
5 * Authors:
6 * Costantino Grana (costantino.grana@unimore.it)
7 * Federico Bolelli (federico.bolelli@unimore.it)
8 * Michele Cancilla (michele.cancilla@unimore.it)
9 * Laura Canalini (laura.canalini@unimore.it)
10 * Stefano Allegretti (stefano.allegretti@unimore.it)
11 * All rights reserved.
12 */
13 
14 #ifndef ECVL_GPU_HAL_H_
15 #define ECVL_GPU_HAL_H_
16 
17 #include <cuda_runtime.h>
18 
19 #include "ecvl/core/hal.h"
20 #include "ecvl/core/cuda/common.h"
21 
22 
23 namespace ecvl
24 {
25 class GpuHal : public HardwareAbstractionLayer
26 {
27 public:
28  uint8_t* MemAllocate(size_t nbytes) override;
29 
30  void MemDeallocate(uint8_t* data) override
31  {
32  checkCudaError(cudaFree(data));
33  }
34 
35  uint8_t* MemCopy(uint8_t* dst, const uint8_t* src, size_t nbytes) override;
36 
37  static GpuHal* GetInstance();
38 
39  void FromCpu(Image& src) override;
40 
41  void ToCpu(Image& src) override;
42 };
43 } // namespace ecvl
44 
45 
46 #endif // ECVL_GPU_HAL_H_
Image class.
Definition: image.h:72
static GpuHal * GetInstance()
uint8_t * MemCopy(uint8_t *dst, const uint8_t *src, size_t nbytes) override
void ToCpu(Image &src) override
void FromCpu(Image &src) override
uint8_t * MemAllocate(size_t nbytes) override
void MemDeallocate(uint8_t *data) override
Definition: gpu_hal.h:30