RTC Toolkit  0.1.0-alpha
exampleGpuLib.hpp
Go to the documentation of this file.
1 #ifndef EXAMPLEGPULIB_H
2 #define EXAMPLEGPULIB_H
3 
4 #include <string>
5 #include <vector>
6 #include <cassert>
7 
8 #include "cuda_runtime.h"
9 #include "cublas_v2.h"
10 
11 #include "rtctk/exampleDataTask/CumulativeAverage_cuda.cuh"
12 
13 namespace rtctk::exampleDataTask {
14 
16 
17  public:
18  exampleGpuLib(int input_length, int output_length, int gpu);
20 
21  void SetMatrix(float * mat, bool flip = true);
22  std::vector<float> GetMatrix();
23 
24 
25  void SetAvgSlopes(std::vector<float> avg_array);
26  std::vector<float> GetAvgSlopes();
27 
28  std::vector<float> GetResults(bool download = false);
29 
30  void NewSample(const float * sample, int callback_count);
31  void Compute();
32 
34 
35  protected:
36  // sets the required GPU
37  void SetGPU();
38 
39  void PrintCudaError(cudaError_t error);
40  std::string CublasGetStatusString(cublasStatus_t error);
41  void PrintCublasStatus(cublasStatus_t status);
42 
43  private:
44  int m_gpu;
45  int currentSample;
46  float m_alpha;
47  float m_beta;
48 
49  cublasHandle_t handle;
50 
51  // input_vector
52  int m_slopes;
53  int m_modes;
54 
55 
56  // slopes vector
57  float *m_slopes_vector;
58  float *m_slopes_vector_d;
59 
60  // avg_array_vectore
61  float * m_avg_slopes;
62  float * m_avg_slopes_d;
63 
64  // matrix
65  float * m_slopes_to_modes_matrix;
66  float * m_slopes_to_modes_matrix_d;
67 
68  // output vector
69 
70  float * m_modes_vector;
71  float * m_modes_vector_d;
72 
73 };
74 
75 } // namespace
76 
77 #endif
rtctk::exampleDataTask::exampleGpuLib::Compute
void Compute()
rtctk::exampleDataTask::exampleGpuLib::~exampleGpuLib
~exampleGpuLib()
rtctk::exampleDataTask::exampleGpuLib::PrintCudaError
void PrintCudaError(cudaError_t error)
rtctkExampleDataTaskGenFitsData.mat
mat
Definition: rtctkExampleDataTaskGenFitsData.py:14
rtctk::exampleDataTask::exampleGpuLib::SetGPU
void SetGPU()
rtctk::exampleDataTask
Definition: businessLogic.hpp:22
rtctk::exampleDataTask::exampleGpuLib::NewSample
void NewSample(const float *sample, int callback_count)
rtctk::exampleDataTask::exampleGpuLib::GetAvgSlopes
std::vector< float > GetAvgSlopes()
rtctk::exampleDataTask::exampleGpuLib::GetMatrix
std::vector< float > GetMatrix()
rtctk::exampleDataTask::exampleGpuLib::SetMatrix
void SetMatrix(float *mat, bool flip=true)
rtctk::exampleDataTask::exampleGpuLib::initReaderThread
void initReaderThread()
rtctk::exampleDataTask::exampleGpuLib::CublasGetStatusString
std::string CublasGetStatusString(cublasStatus_t error)
rtctk::exampleDataTask::exampleGpuLib::exampleGpuLib
exampleGpuLib(int input_length, int output_length, int gpu)
rtctk::exampleDataTask::exampleGpuLib
Definition: exampleGpuLib.hpp:15
rtctk::exampleDataTask::exampleGpuLib::GetResults
std::vector< float > GetResults(bool download=false)
rtctk::exampleDataTask::exampleGpuLib::PrintCublasStatus
void PrintCublasStatus(cublasStatus_t status)
rtctk::exampleDataTask::exampleGpuLib::SetAvgSlopes
void SetAvgSlopes(std::vector< float > avg_array)
error
void error(const char *msg)
Definition: main.cpp:29