1) Нет, не для общего случая C #, но для небольшого подмножества, да. Либо через среду выполнения (проверьте Tidepowerd GPU.NET), либо через языковую поддержку (LINQ или Code Quotations).
2) Да, DirectCompute (вычислительные шейдеры DX11) и OpenCL являются независимыми от производителя зрелыми API, и для них можно найти привязку .NET.
3) Нет, как сказал Джеймс, они разные звери. GPU - это процессоры с высокой задержкой, оптимизированные для параллельных приложений с высокой пропускной способностью, тогда как CPU - процессоры с низкой задержкой, оптимизированные для последовательных приложений общего назначения.
Единственный известный мне исследовательский проект, который пытается решить эту проблему, - это язык SPAP .
Мой совет, не пытайтесь найти идеальный универсальный API / время выполнения, потому что его нет. Выберите существующую технологию (DirectCompute или OpenCL) и узнайте, как вы можете использовать ее для своего бизнеса.
Полезные ссылки для запуска: