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