GPU rendering core load percentage

Dear all,

I am developing a GPU CUDA code and running that on TITAN V. When I run the code and monitor the GPU load by the software GPU-Z, it is around 50%. How can I increase the GPU load or use 100% of the GPU card?

Thank you for your help in advance.

Profile your code, and modify your code in such a way that the code timeline is entirely occupied by kernel calls. To a first order approximation, the GPU-Z utilization number is reporting a percentage of the timeline during which one or more GPU kernels are active.

Thank you for the quick reply.
So, playing with the value of threads and blocks don’t affect the GPU load? I need to modify or optimize the code?
I think the CUDA samples such as fluidsGL have been optimized, but even for this sample, the GPU load is 50%.

CUDA samples generally haven’t been optimized for performance. Their primary purpose is to demonstrate a particular technique or method.

A short sample code that does just one thing, often perhaps launching a single kernel, may not score very well on this measurement.

Threads and blocks don’t affect this particular GPU load measurement. The fluidsGL code is a CUDA/OpenGL interop code, which means it is alternating between launching a kernel and handing off the computed data to OpenGL, then launching a kernel again, then handing off the data again. I think you might learn a lot by learning to use a profiler.

If you want to see that number close to 100%, I would use the method I already described. Launch even a trivial kernel that occupies most of the duration of the program.

Try compiling and running this code, and see what GPU Z reports:

__global__ void k(){
        long long start = clock64();
        while (clock64() < start+10000000000ULL);
}

int main(){

        k<<<1,1>>>();
        cudaDeviceSynchronize();
}

It should run for about 5-10 seconds, and I expect GPU-Z to report 100% utilization for much of that time period.

Thank you so much.