Код можно хранить в отдельном файле, компилировать при поможи OpenCL компилятора перед компиляцией проекта, а в C# коде загружать откомпилированный бинарный OpenCL код уже в рантайме.
Ну, это я для примера сделал. В принципе есть компиляторы под OpenCL код, в них он и пишется (у AMD и Intel они прилагаются к SDK). А в программу код можно подгружать отдельным файлом. Хотя, конечно, я не скажу что разработка под OpelCL на сегодняшний день слишком удобна…
Практически чистый си (C99). Там добавлено несколько специфических фишечек и убраны некоторые возможности (например рекурсия). Это код, который грузиться для исполнения непосредственно на OpenCL устройство. Туда кроме как C99 ничего заливать нельзя.
В принципе я рассказал про то, как настроить и использовать OpenCL, а так же дал ссылки на варпперы под C# и примеры кода именно на C#, так что почему бы и нет? Конечно, может было бы правильно «Использование OpenCL под C# это просто», но оно как-то не звучало.
OpenCL под C# это просто