The number of cores on the NVIDIA K20 GPU in Mathematica

I am using the NVIDIA K20 GPU in Mathematica. The white paper for K20 contains the following specifications:

  • 2496 single-point cores (192 on multiprocessor x 13 multiprocessors)
  • 832 dual-precision cores (64 on multiprocessor x 13 multiprocessors)
  • 416 special function blocks (32 on multiprocessor x 13 multiprocessors)

However, when I start Mathematica and look at the GPU specifications after loading OpenCL or CUDA, it says that I have only 416 cores (I attached a screenshot of Mathematica commands and reported the specifications). Is this somehow related to the number of double-precision cores or special function blocks? Mathematica communicates these specifications before I tell you which code I will write (for example, double precision, transcendental functions). enter image description here

+4
source share
2 answers

Most likely, your Mathematica does not yet know about the Kepler architecture and, therefore, incorrectly translates the multiprocessor count to the kernel count.

Since the "core" is in any case a marketing invention, you can safely ignore this number. Mathematica will continue to use the entire GPU (although the version supporting Kepler may still lead to acceleration with other optimizations).

+6
source

This is an OpenCL artifact, not a Mathematica issue. Mathematica talks to a GPU device using vendor driver APIs such as CUDA or OpenCL. In this case, the information comes through an OpenCL call.

OpenClGetDeviceInfo (..)

with request for CL_DEVICE_MAX_COMPUTE_UNITS

The OpenCL driver says there are 13 SMUs, each of which can run 32 threads. Therefore, the number 416 calculated units. The OpenCL specification is unclear as to what a computing unit is. So OpenCl gives the sum of the SMU * Warp size. OpenCL does the same as AMD, reporting 28 computational units for the 7950, which have 1792 stream units. AMD 79xx launches 64 threads for SMU.

+3
source

All Articles