xref: /aosp_15_r20/external/clpeak/include/clpeak.h (revision 1cd03ba3888297bc945f2c84574e105e3ced3e34)
1*1cd03ba3SJeremy Kemp #ifndef CLPEAK_HPP
2*1cd03ba3SJeremy Kemp #define CLPEAK_HPP
3*1cd03ba3SJeremy Kemp 
4*1cd03ba3SJeremy Kemp #include <iostream>
5*1cd03ba3SJeremy Kemp #include <stdio.h>
6*1cd03ba3SJeremy Kemp #include <iomanip>
7*1cd03ba3SJeremy Kemp #include <string.h>
8*1cd03ba3SJeremy Kemp #include <sstream>
9*1cd03ba3SJeremy Kemp #include <common.h>
10*1cd03ba3SJeremy Kemp #include <logger.h>
11*1cd03ba3SJeremy Kemp 
12*1cd03ba3SJeremy Kemp #define BUILD_OPTIONS " -cl-mad-enable "
13*1cd03ba3SJeremy Kemp 
14*1cd03ba3SJeremy Kemp using namespace std;
15*1cd03ba3SJeremy Kemp 
16*1cd03ba3SJeremy Kemp class clPeak
17*1cd03ba3SJeremy Kemp {
18*1cd03ba3SJeremy Kemp public:
19*1cd03ba3SJeremy Kemp   bool forcePlatform, forcePlatformName, forceDevice, forceDeviceName, forceTest, useEventTimer;
20*1cd03ba3SJeremy Kemp   bool isGlobalBW, isComputeHP, isComputeSP, isComputeDP, isComputeIntFast, isComputeInt, isTransferBW, isKernelLatency, isComputeChar, isComputeShort;
21*1cd03ba3SJeremy Kemp   ulong specifiedPlatform, specifiedDevice;
22*1cd03ba3SJeremy Kemp   char *specifiedPlatformName;
23*1cd03ba3SJeremy Kemp   char *specifiedDeviceName;
24*1cd03ba3SJeremy Kemp   char *specifiedTestName;
25*1cd03ba3SJeremy Kemp   logger *log;
26*1cd03ba3SJeremy Kemp 
27*1cd03ba3SJeremy Kemp   clPeak();
28*1cd03ba3SJeremy Kemp   ~clPeak();
29*1cd03ba3SJeremy Kemp 
30*1cd03ba3SJeremy Kemp   int parseArgs(int argc, char **argv);
31*1cd03ba3SJeremy Kemp 
32*1cd03ba3SJeremy Kemp   // Return avg time in us
33*1cd03ba3SJeremy Kemp   float run_kernel(cl::CommandQueue &queue, cl::Kernel &kernel, cl::NDRange &globalSize, cl::NDRange &localSize, uint iters);
34*1cd03ba3SJeremy Kemp 
35*1cd03ba3SJeremy Kemp   int runGlobalBandwidthTest(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
36*1cd03ba3SJeremy Kemp 
37*1cd03ba3SJeremy Kemp   int runComputeSP(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
38*1cd03ba3SJeremy Kemp 
39*1cd03ba3SJeremy Kemp   int runComputeHP(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
40*1cd03ba3SJeremy Kemp 
41*1cd03ba3SJeremy Kemp   int runComputeDP(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
42*1cd03ba3SJeremy Kemp 
43*1cd03ba3SJeremy Kemp   int runComputeInteger(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
44*1cd03ba3SJeremy Kemp 
45*1cd03ba3SJeremy Kemp   int runComputeIntFast(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
46*1cd03ba3SJeremy Kemp 
47*1cd03ba3SJeremy Kemp   int runComputeChar(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
48*1cd03ba3SJeremy Kemp 
49*1cd03ba3SJeremy Kemp   int runComputeShort(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
50*1cd03ba3SJeremy Kemp 
51*1cd03ba3SJeremy Kemp   int runTransferBandwidthTest(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
52*1cd03ba3SJeremy Kemp 
53*1cd03ba3SJeremy Kemp   int runKernelLatency(cl::CommandQueue &queue, cl::Program &prog, device_info_t &devInfo);
54*1cd03ba3SJeremy Kemp 
55*1cd03ba3SJeremy Kemp   int runAll();
56*1cd03ba3SJeremy Kemp };
57*1cd03ba3SJeremy Kemp 
58*1cd03ba3SJeremy Kemp #endif // CLPEAK_HPP
59