Reputation: 911
I am using an NVIDIA K20 GPU in Mathematica. The whitepaper for the K20 states the following specs:
However, when I launch Mathematica and look at the specs of the GPU after loading OpenCL or CUDA, it says that I have only 416 cores (I have attached a screenshot of the Mathematica commands and reported specs). Is this somehow related to the number of double-precision cores or special function units? Mathematica reports these specs before I tell it what kind of code I will write (e.g. double precision, transcendental functions).
Upvotes: 4
Views: 3435
Reputation: 3012
This is an OpenCL artifact, not Mathematica's issue. Mathematica talks to the GPU device via a Vendor driver API such as CUDA or OpenCL. In this case the information is coming via a call to OpenCL's
OpenClGetDeviceInfo (.. )
with a request for CL_DEVICE_MAX_COMPUTE_UNITS
The OpenCL driver is saying that it there 13 SMU's which can each run 32 threads. Hence the number of 416 Compute Units.The OpenCL spec is vague about what a Compute Unit is. So OpenCl is giving the sum of SMU * Warp size. OpenCL does a similar thing on AMD too reporting 28 Compute Units for a 7950 which has 1792 stream units. AMD 79xx runs 64 threads per SMU.
Upvotes: 3
Reputation: 7245
It is much more likely that your Mathematica does not yet know about the Kepler architecture yet, and thus translates multiprocessor count into core count incorrectly.
Since "cores" are mostly a marketing invention anyway, you can safely ignore that number. Mathematica will still use the entire GPU (although a Kepler-aware version might still bring some speedup through other optimizations).
Upvotes: 6