Да, ты можешь. Собственно, это моя работа :)
Я написал GPU.NET полностью на F # (по модулю наших модульных тестов) - он фактически дизассемблирует и JIT выполняет IL во время выполнения, как это делает .NET CLR. Мы генерируем собственный код для любого базового устройства ускорения, которое вы хотите использовать; в настоящее время мы поддерживаем только графические процессоры Nvidia, но я спроектировал нашу систему так, чтобы ее можно было перенастроить с минимальными усилиями, поэтому, вероятно, мы будем поддерживать другие платформы в будущем.
Что касается производительности, я должен поблагодарить F # - при компиляции в оптимизированном режиме (с хвостовыми вызовами) сам наш JIT-компилятор, вероятно, примерно так же быстр, как компилятор в CLR (который написан на C ++, IIRC).
Что касается исполнения, то у нас есть возможность передать управление аппаратным драйверам для выполнения измененного кода; однако сделать это на ЦП не составит труда, поскольку .NET поддерживает указатели функций на неуправляемый / собственный код (хотя вы потеряете любую безопасность, обычно обеспечиваемую .NET).