2010-11-16 17 views
7

Używam OpenCL do pisania jądra GPGPU, które są ukierunkowane na środowisko wykonawcze NVIDIA CUDA. Byłem niedawno czytania na V8 i znaleźć stronę opisującą V8 osadzanie techniki:Umieścić V8 w aplikacji OpenCL?

http://code.google.com/apis/v8/embed.html

jest to możliwe do „wrap” wszystkie funkcje OpenCL w „szablony” V8 tak, że mogę napisać logikę jądra w JavaScript ?

Dla odniesienia, linki do powiązań OpenCL 1.1 C++ znajdują się na stronie internetowej Khronos.

Moim głównym zmartwieniem jest to, że OpenCL w dużym stopniu opiera się na OpenGL. Czy otwieracz OpenCL V8 pociągnie za sobą zawijanie dużych porcji OpenGL (lub zaporowo, także środowiska wykonawczego CUDA z zamkniętym kodem źródłowym)? Czy jest to po prostu niemożliwe, aby pogodzić maszynę wirtualną V8 i środowiska wykonawcze CUDA?

+0

Chromium zezwala na OpenGL przez V8: http://blog.chromium.org/2009/12/webgl-spec-initial-public-draft.html – sje397

+0

Czy chcesz napisać kod urządzenia lub hosta w javascript? – tkerwin

Odpowiedz

1

Może to być "możliwe", ale najprawdopodobniej niewykonalne i niepraktyczne. Tłumacze są z natury szeregowymi procesorami. Trzeba by było odrodzić interpretera dla każdego wątku (lub przynajmniej każdej grupy wątków za pomocą pamięci współużytkowanej, ale wtedy musiałbyś sobie poradzić z wątkami tupiącymi się nawzajem, jeśli użyli tej samej instancji tłumacza). Większość kart wideo nie ma pamięci, aby to zrobić. Przypuszczam, że możesz mapować współużytkowaną pamięć hosta, aby ominąć to.

Dolna linia.

Możliwe tak, ale można by pokonać cel OpenCL będąc szybki i byłoby to dosłownie setki, jeśli nie miliony razy wolniejsze i niezwykle trudne do wdrożenia.

+0

Szybkie pytanie, mimo że jest to oczywiście starszy post. Czy nie możesz zrobić tego samego, ale skalowalnego, aby mógł TYLKO poprawić wydajność bogatych aplikacji? Czy oprogramowanie w przeglądarce korzystało z ograniczeń komputera bardziej niż przeglądarki? –