Использование `overlap`,` kernel time` и `utilization` для оптимизации ядра - PullRequest
0 голосов
/ 20 октября 2011

Мой архив ядра использует 100%, но kernel time составляет всего 3%, а no time overlap between memory copies and kernels.

Особенно высокая загруженность и низкое время работы ядра не имеют для меня смысла.

Так как же мне продолжить оптимизацию своего ядра?

Я уже убедился, что у меня есть только объединенный и закрепленный доступ к памяти, как рекомендовано профилировщиком.

`Quadro FX 580 utilization = 100.00% (62117.00/62117.00)`

Kernel time = 3.05 % of total GPU time 
Memory copy time = 0.9 % of total GPU time
Kernel taking maximum time = Pinned (0.7% of total GPU time)
Memory copy taking maximum time = memcpyHtoD (0.5% of total GPU time)
There is no time overlap between memory copies and kernels on GPU

Более того, у меня нет сериализации деформации, нет расходящихся ветвей и нет фактора ограничения занятости.

Kernel details: Grid size: [4 1 1], Block size: [256 1 1]
Register Ratio: 0.9375 ( 7680 / 8192 ) [10 registers per thread]
Shared Memory Ratio: 0.09375 ( 1536 / 16384 ) [60 bytes per Block]
Active Blocks per SM: 3 (Maximum Active Blocks per SM: 8)
Active threads per SM: 768 (Maximum Active threads per SM: 768)
Potential Occupancy: 1 ( 24 / 24 )
Achieved occupancy: 0.333333 (on 4 SMs)
Occupancy limiting factor: None

p.s. Я не утверждаю, что написал wundercode, но я просто не знаю, как действовать дальше.

1 Ответ

1 голос
/ 23 августа 2013

кажется, что размер сетки вашего ядра слишком мал, чтобы полностью использовать SM. почему бы не уменьшить размер блока и увеличить размер сетки. Я думаю, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...