https://bugzilla.kernel.org/show_bug.cgi?id=82581
Bug ID: 82581 Summary: CL_DEVICE_MAX_COMPUTE_UNITS increases by 100 every time runpm powers on 7970M pitcairn Product: Drivers Version: 2.5 Kernel Version: 3.16.1 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) Assignee: drivers_video-dri@kernel-bugs.osdl.org Reporter: haagch.christoph@googlemail.com Regression: No
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Wimbledon XT [Radeon HD 7970M] (rev ff)
linux 3.16.1
drmCommandWriteRead() in mesa receives the wrong value already so I put this here.
As long as the gpu is not powered off in between runs the value stays the same. When the gpu is powered off and on, the value will be increased by 100.
Test program output:
$ g++ numcomp.cpp -o numcomp -lOpenCL; ./numcomp; ./numcomp; sleep 10; ./numcomp; ./numcomp OpenCL Number of compute units: 7500 OpenCL Number of compute units: 7500 OpenCL Number of compute units: 7600 OpenCL Number of compute units: 7600
Test program source:
#include <CL/cl.hpp> #include <iostream> int main() { int err, numberOfComputeUnits = 0; std::vectorcl::Platform platformList; cl::Platform::get(&platformList); cl_context_properties cprops[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties) (platformList[0])(), 0 }; cl::Context *context = new cl::Context(CL_DEVICE_TYPE_GPU, cprops, NULL, NULL, &err); std::vectorcl::Device devices = context->getInfo<CL_CONTEXT_DEVICES>(); devices[0].getInfo(CL_DEVICE_MAX_COMPUTE_UNITS, &numberOfComputeUnits); std::cout << "OpenCL Number of compute units: " << numberOfComputeUnits << std::endl;; return 0; }
Also with other tools like http://graphics.stanford.edu/~yoel/notes/clInfo.c: $ ./clInfo | grep MAX_COMPUTE_UNITS device[0x1118288]: MAX_COMPUTE_UNITS: 10400