Это сводится к семантике. Что на самом деле означает «выполнить» и «работать параллельно»?
На базовом уровне наличие 96 ядер CUDA действительно означает, что у вас есть потенциальная пропускная способность 96 результатов вычислений за такт тактовой частоты ядра.
Ядро в основном представляет собой арифметико-логическое устройство (АЛУ), оно выполняет основные арифметические и логические операции. Помимо доступа к ALU потоку требуются другие ресурсы, такие как регистры, общая память и глобальная память, для запуска. Графический процессор будет держать много потоков «в полете», чтобы все эти ресурсы использовались в полной мере. Количество потоков «в полете», как правило, будет намного выше, чем количество ядер. С одной стороны, эти потоки можно рассматривать как «выполняемые параллельно», поскольку все они потребляют ресурсы на графическом процессоре одновременно. Но с другой стороны, большинство из них на самом деле ждут чего-то, например, данных, поступающих из глобальной памяти, или результатов арифметики, проходящих по конвейерам в ядрах. Графический процессор помещает потоки, которые чего-то ждут, на «задний план». Они потребляют некоторые ресурсы, но на самом ли деле они работают? :)