Gpu opencl benchmark list6/10/2023 The device can boost higher frequencies, so this again is an approximation.Īll of it together gives an estimation for the floating-point performance. The most official source is probably the Khronos conformance list. They also have a list of currently supported ATI/AMD video cards. AMD's APP SDK requires CPUs to support at least SSE2. OpenCL provides the base clock frequency in MHz by getInfo(). OpenCL compatibility can generally be determined by looking on the vendor's sites. getInfo()=CL_DEVICE_TYPE_GPU will result in true if the device is a GPU. One could use the device name and a lookup table to be more accurate. There is no way to figure out the IPC in OpenCL directly, so the 32 for CPUs is just a guess. ![]() ![]() For most GPUs, this is 2, while for recent CPUs this is 32, see The next part is the FP32 IPC or instructions per clock. So based on the vendor and the amount of CUs one can figure out the number of cores per CU. Luckily, the vendor is included in getInfo(). Select_device_with_most_flops() is more difficult, because OpenCL does only provide the number of compute units (CUs) getInfo(), which for a CPU is the number of threads and for a GPU has to be multiplied by the number of stream processors / cuda cores per CU, which is different for Nvidia, AMD and Intel as well as their different microarchitectures and is usually between 4 and 128. select_device_with_most_memory() is straightforward and uses getInfo().įloating-point performance is given by this equation:įLOPs/s = cores/CU * CUs * IPC * clock frequency Equivalent to specifying opencllegacy in ubuntus amdgpu-install. Select_device_with_most_memory(find_devices()) Īt first, find_devices() returns a vector of all OpenCL devices in the system. Tip: The clinfo utility can be used to list OpenCL platforms, devices present and ICD. Select_device_with_most_flops(find_devices()) CompuBench measures the compute performance of your OpenCL and CUDA device. This code will return the device with the most floating-point performance CompuBench - performance benchmark for various compute APIs (OpenCL, RenderScript) CompuBench RS. ![]() Std::cout << device.name() << ", freq: " << device.clock_frequency() << ", units: " << pute_units() << ", rating:" << rating << std::endl Also I looked into the specs and it seems to me that CL_DEVICE_MAX_CLOCK_FREQUENCY isn't returning correct value.Īccording to AMD Chip specs, my AMD GPU has base frequency of 1175 MHz, not 300MHz.Īccording to Intel Chip specs, my Intel GPU has base frequency of 300 MHz, not 1150MHz, but it does have a boost frequency of 1150MHz std::vector devices = boost::compute::system::devices() Īuto rating = device.clock_frequency() * pute_units() I get the following results: Intel(R) Core(TM) i7-8850H CPU 2.60GHz,įreq: 2600, compute units: 12, rating:31200ĪMD GPU has the lowest rating. I want to use AMD Radeon Pro 560X Compute Engine for my purpose but when I iterate to find the device with maximum rating = CL_DEVICE_MAX_CLOCK_FREQUENCY * CL_DEVICE_MAX_COMPUTE_UNITS. I query the devices on my MacBook Pro using boost::compute::system::devices() which returns me following list of devices. I'm using the advice given here for choosing an optimal GPU for my algorithm.
0 Comments
Leave a Reply. |