потому что ядро открытой системы не должно зависеть от проприетарных закрытых компонентов, к тому же нагрузка на процессор генерируемая непосредственно ядром - небольшая в сравнении с userspace
cuda-accelerated gcc ? идея интересна, но зачем ограничиваться только одним лишь ядром? может быть когда-нибудь и реализуют, а вообще хорошо бы если бы кто-то уже и наработки начал какие в этом плане...
дает эффект только на идентичных файлах исходного кода
если собирать ядро несколько раз подряд - да
в остальных же случаях - бесполезная трата места на диске и обсчета контрольных сумм preprocessed source
Код на CUDA это не совсем C. В нём имеются некоторые указания относительно распределения вычислений по нитям. Кроме того код на CUDA очень архитектурно зависим. Иными словами всё это чушь. Пересобрать что-либо с помощью CUDA не возможно. Нужно переписать. Практически целиком. И это при том что смысл CUDA в том чтобы быстро выполнять множество операций с плавающей точкой.
Потому, что CUDA реализует модель SIMD (одна инструкция, много данных). Например, есть параметр измеренный для 10^9 электронов, необходимо с помощью сложной формулы по этому параметру для каждого электрона вычислить другой параметр. Тогда CUDA подойдет.
При компиляции ядра задача совсем другая: MIMD (много инструкций, много данных). Так что компиляция на CUDA будет проходить даже медленнее, чем на 4-х ядерном CPU.