Насколько естественным является OpenCL в Java? - PullRequest
0 голосов
/ 26 сентября 2010

Я вижу, что есть привязка OpenCL для Java. Позволяет ли это действительно программировать на Java, используя CPU / GPU и т. Д. В качестве процессорных ядер, или это просто дает приложениям Java доступ к методам с поддержкой C ++ OpenCL?

Из интереса, есть ли привязка OpenCL для .Net?

1 Ответ

1 голос
/ 26 сентября 2010

Каким именно будет метод с поддержкой C ++ OpenCL? В C ++ у вас есть доступ к функциям API для создания контекстов / буферов / ядер / ..., но код, который должен быть выполнен на gpu, должен быть написан на языке OpenCL C и распространяться как источник вместе с приложением (то есть OpenCL не все, что родной в C ++ либо). Из того, что я видел до сих пор, это ситуация и для java (так что она такая же нативная или нативная, как c ++ в этом отношении, за исключением того, что c ++ немного ближе к используемому диалекту C, чем java (но не совместим). *

Хотя должна быть возможность создать исходный код OpenCL C из скомпилированного java-класса и передать его компилятору, довольно много усилий для создания байт-кода Java-компилятора <-> OpenCL C, так что я думаю, что это потребуется еще некоторое время, пока не появится такое решение. Кроме того, будут все виды (казалось бы, случайных) ограничений на код, который может быть введен в эту систему (например, без рекурсии). Однако, если я правильно помню, какое-то нативное решение для python уже существует, так что это не займет много времени.

Конечно, я не знаю каждую библиотеку Java, и использование OpenCl с java сейчас не входит в мой список дел, поэтому я могу ошибаться из-за отсутствия «родных» привязок.

Есть привязки для .Net, например http://sourceforge.net/projects/cloo/

...