Wpis z mikrobloga

A dziś zrobiłem działającą multipikację bloku współbieżnego, przydatnego np. do zrobienia bloku tych samych operacji wykonywanych na różnych zakresach tej samej kolekcji danych (możnaby na tej zasadzie zrobić np. software'owy symulator pipeline'u shaderów ;3). Przykład na obrazku to uproszczenie, pokazujące iż działa, ot. Następnym razem zarzucę bardziej fancy przykładem! ^^


#gamedev #programowanie #xenoncore3 #intuicio
PsichiX - A dziś zrobiłem działającą multipikację bloku współbieżnego, przydatnego np...

źródło: comment_sqtYQkWyd4ZIkrRBVcZsURAemxyZPi4M.jpg

Pobierz
  • 6
@PsichiX: to się nazywa data paralellism.

Wg. mnie nie wygląda to najlepiej: z jednej strony wysokopoziomowe konstrukcje typu parallel-group, dbgi, a zdrugiej toporny assembler gdzie zamiast rejestrów podaje się indeks jakiejś tablicy (deci 0, 0).
Tutaj najważniejszy jest frontend, czyli kompilator. To język powinien dobrze wspierac wielowatkowość, a asembler nie potzebuje dedykowanych instrukcji do tego.
Tak czy siak stworzenie nowego języka to kupa roboty, która może odstraszyć użytkowników.

Ze swojej strony
@PsichiX: jakby co to bitcode można też interpretować: http://llvm.org/docs/CommandGuide/lli.html
LLVM nie bez powodu stał się "wspólnym mianownikiem" wielu nowych języków: jedyne co musisz zrobić to napisać kompilator wypluwający LLVM IR a resztę dostajesz gratis: asm reader/writer, analizę, optymalizacje, backendy do kodu natywnego (x86, arm, etc...), interpreter/jit.

Dodatkowo decydując się na użycie llvm IR jako języka skryptowego w silniku, użytkownik sam może wybrać jakiego języka (frontendu) użyje - byle by produkował IR