From 97c7897adf0f6894229359519fed0ad461baa9e5 Mon Sep 17 00:00:00 2001 From: Yichao Yu <yyc1992@gmail.com> Date: Sun, 22 Jun 2014 13:28:41 +0800 Subject: [PATCH] device::get_version --- src/c_wrapper/device.cpp | 9 +++++++++ src/c_wrapper/device.h | 1 + src/c_wrapper/platform.cpp | 2 +- src/c_wrapper/platform.h | 3 +-- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/c_wrapper/device.cpp b/src/c_wrapper/device.cpp index 49e27e2c..c395b62b 100644 --- a/src/c_wrapper/device.cpp +++ b/src/c_wrapper/device.cpp @@ -10,6 +10,15 @@ template void print_clobj<device>(std::ostream&, const device*); template void print_buf<cl_device_id>(std::ostream&, const cl_device_id*, size_t, ArgType, bool, bool); +void +device::get_version(cl_device_id dev, int *major, int *minor) +{ + cl_platform_id plat; + pyopencl_call_guarded(clGetDeviceInfo, dev, CL_DEVICE_PLATFORM, + size_arg(plat), nullptr); + platform::get_version(plat, major, minor); +} + device::~device() { if (false) { diff --git a/src/c_wrapper/device.h b/src/c_wrapper/device.h index 274e972d..970047d1 100644 --- a/src/c_wrapper/device.h +++ b/src/c_wrapper/device.h @@ -26,6 +26,7 @@ private: reference_type_t m_ref_type; public: + static void get_version(cl_device_id dev, int *major, int *minor); device(cl_device_id did, bool retain=false, reference_type_t ref_type=REF_NOT_OWNABLE) : clobj(did), m_ref_type(ref_type) diff --git a/src/c_wrapper/platform.cpp b/src/c_wrapper/platform.cpp index 20e36bcf..28b123c8 100644 --- a/src/c_wrapper/platform.cpp +++ b/src/c_wrapper/platform.cpp @@ -34,7 +34,7 @@ platform::get_info(cl_uint param_name) const static const std::regex ver_regex("^OpenCL ([0-9]+)\\.([0-9]+).*"); void -get_platform_version(cl_platform_id plat, int *major, int *minor) +platform::get_version(cl_platform_id plat, int *major, int *minor) { char s_buff[128]; size_t size; diff --git a/src/c_wrapper/platform.h b/src/c_wrapper/platform.h index 1c47123a..f399392a 100644 --- a/src/c_wrapper/platform.h +++ b/src/c_wrapper/platform.h @@ -15,6 +15,7 @@ extern template void print_buf<cl_platform_id>( class platform : public clobj<cl_platform_id> { public: + static void get_version(cl_platform_id plat, int *major, int *minor); using clobj::clobj; PYOPENCL_DEF_CL_CLASS(PLATFORM); @@ -23,8 +24,6 @@ public: extern template void print_clobj<platform>(std::ostream&, const platform*); -void get_platform_version(cl_platform_id plat, int *major, int *minor); - // }}} } -- GitLab