Обнаружена проблема: порядок выполнения рабочих групп определяется реализацией.Это означает, что некоторые потоки могут начинаться только после завершения других.
В коде, который я дал, рабочие группы, которые запускаются первыми, будут постоянно работать в цикле, ожидая, пока другие не достигнут «барьера».И рабочие группы, которые будут запущены позже, никогда не начнутся, потому что они ждут окончания первых.
Если реализация (я на Radeon 5750, использую Stream SDK 2.2) выполняетсявсе рабочие группы одновременно, тогда это, вероятно, не будет проблемой.Но это не относится к моей настройке.