The following attribute is missing from the device:


So I was wondering if it’s safe to calculate it as follows:

MaxResidentWarpsPerMultiProcessor = MaxResidentThreadsPerMultiProcessor div WarpSize;

The two variables on the right side are available in the attributes.

This will give for example:

48 = 1536 div 32;

Is this calculation “safe/correct” across all devices ?

Or should MaxResidentWarpsPerMultiProcessor simply be set by inspecting compute capability and using a chart like so ?:

if compute 2.0 then MaxResidentWarpsPerMultiProcessor = 48;

The first method seems more “future-ready” in case one of the variables changes, then the code will auto adept without requiring any further coding or updates.


I also need MaxResidentBlocksPerMultiProcessor and I see no way of calculating it.

So perhaps I will have to use the “based on compute capability-way” anyway… so might as well do it for the other one too…

Unless there is a way to calculate MaxResidentBlocksPerMultiProcessor as well ?