|
#pragma once |
|
|
|
|
|
#include "OpenCLUtils_Export.h" |
|
|
|
|
|
#include <CL/cl.h> |
|
|
|
|
|
#include <time.h> |
|
|
|
UTILS_EXPORT |
|
cl_context cl_util_get_context(const cl_uint plat_id, const cl_uint dev_id, |
|
const cl_device_type type, cl_int* const error); |
|
UTILS_EXPORT |
|
cl_device_id cl_util_get_device(const cl_uint plat_id, const cl_uint dev_id, |
|
const cl_device_type type, cl_int* const error); |
|
|
|
UTILS_EXPORT |
|
cl_int cl_util_print_device_info(const cl_device_id device); |
|
|
|
UTILS_EXPORT |
|
char* cl_util_get_device_info(const cl_device_id device, |
|
const cl_device_info info, cl_int* const error); |
|
UTILS_EXPORT |
|
char* cl_util_get_platform_info(const cl_platform_id platform, |
|
const cl_platform_info info, |
|
cl_int* const error); |
|
|
|
|
|
UTILS_EXPORT |
|
cl_int cl_util_build_program(const cl_program pr, const cl_device_id dev, |
|
const char* const opt); |
|
|
|
#define GET_CURRENT_TIMER(time) \ |
|
struct timespec time; \ |
|
timespec_get(&time, TIME_UTC); \ |
|
{ \ |
|
} |
|
|
|
#define TIMER_DIFFERENCE(dt, time1, time2) \ |
|
{ \ |
|
dt = (time2.tv_sec - time1.tv_sec) * 1000000000 \ |
|
+ (time2.tv_nsec - time1.tv_nsec); \ |
|
} |
|
|
|
#define START_TIMER GET_CURRENT_TIMER(start_timer1) |
|
#define STOP_TIMER(dt) \ |
|
GET_CURRENT_TIMER(stop_timer2) \ |
|
TIMER_DIFFERENCE(dt, start_timer1, stop_timer2) |
|
|