Slang zapewnia twórcom grafiki działającej w czasie rzeczywistym innowacyjne funkcje, które uzupełniają istniejące języki cieniowania, w tym modułowe tworzenie kodu, przenośne wdrażanie do wielu docelowych interfejsów API i obliczenia neuronowe w shaderach grafiki. Hosting pod nadzorem wielu firm w Khronos umożliwi i będzie wspierać współpracę w całej branży, aby napędzać ciągłą ewolucję Slang.
„Slang jest obecnie znaczącą opcją języka cieniowania dla twórców grafiki na całym świecie, ponieważ wszyscy mogą bezpośrednio wpływać na jego ciągły rozwój i uczestniczyć w nim” – powiedział Neil Trevett, prezes The Khronos Group i wiceprezes ds. ekosystemów programistycznych w firmie NVIDIA. „Innowacyjna struktura zarządzania Slangiem Khronos łączy elastyczność programowania open source z zabezpieczeniami patentowymi otwartych standardów. Slang jest swobodnie dostępny dla dowolnej platformy lub interfejsu API, z którego można korzystać, w tym Khronos, który wykorzysta Slang w ekosystemie Vulkan, zapewniając jednocześnie responsywność SPIR-V do wymagań Slanga.”
„NVIDIA będzie kontynuować swoją wieloletnią inwestycję w Slang, który ma zaspokoić potrzeby współczesnych twórców grafiki, torując jednocześnie drogę rewolucji w grafice neuronowej” – powiedział Nicholas Haemel, wiceprezes ds. grafiki i oprogramowania systemowego w firmie NVIDIA. „Dzięki Slangowi w otwartym zarządzaniu w Khronos społeczność graficzna może wspólnie rozwijać i wykorzystywać zalety obsługi wielu platform, skalowalnych systemów graficznych, skróconego czasu kompilacji i zwiększonej modułowości”.
Wspieranie otwartej współpracy branżowej
Khronos ustanowił unikalny model zarządzania, aby zapewnić, że Slang pozostaje otwarty i reaguje na programistów. Hostowany w GitHub i licencjonowany na platformie Apache 2.0 projekt open source Slang będzie opierał się na najlepszych praktykach w zakresie rozwoju technicznego, jednocześnie wspierając aktywną, samorządną społeczność współpracowników. Współtwórcy mogą wpływać na projekt języka, ulepszać bazę kodu i usuwać błędy, dając możliwość zdobycia podwyższonych praw w ramach projektu – niezależnie od członkostwa Khronos.
Powiązana grupa robocza Slang, złożona z członków Khronos, zapewnia wsparcie finansowe, logistyczne i marketingowe projektowi open source, oferując strategiczne wskazówki, jednocześnie umożliwiając elastyczność prac inżynierskich Slang. Razem projekt open source i grupa robocza tworzą Inicjatywę Slang.
Projekt open source Slang opracuje rygorystyczną specyfikację języka wraz z kompilatorem, zapewniając programistom przejrzystość i spójność architektoniczną zgodność wsteczną. Niniejsza specyfikacja będzie okresowo ratyfikowana przez Grupę Roboczą Slang w celu zapewnienia ochrony licencyjnej patentowej w ramach Khronos Intellectual Property Framework.
Wartość slangu dla programistów
Slang został zaprojektowany, aby sprostać zmieniającym się potrzebom twórców grafiki czasu rzeczywistego, zwłaszcza tych pracujących z bazami kodów shaderów na dużą skalę. Wspierając rozwój modułowy za pomocą funkcji takich jak moduły, interfejsy i typy generyczne, Slang upraszcza tworzenie i konserwację shaderów, jednocześnie znacznie skracając czas kompilacji.
Wielu programistów musi obecnie przepisać kod modułu cieniującego, aby działał na wielu docelowych interfejsach API i platformach, lub korzystać ze złożonych łańcuchów narzędzi do tłumaczenia lub rekompilacji. Kompilator Slang bezpośrednio obsługuje wiele obiektów docelowych w celu wdrażania przenośnego kodu na różnych interfejsach API i platformach, w tym SPIR-V dla Vulkan, HLSL dla Direct3D, GLSL dla OpenGL, WGSL dla WebGPU i Metal Shading Language dla platform Apple. Na przykład firma Autodesk używa języka Slang w rendererze śledzenia ścieżki Aurora, aby umożliwić bazę kodu śledzenia promieni z jednego źródła.
Kompilator Slang umożliwia pozyskiwanie istniejących baz kodów modułów cieniujących HLSL i GLSL dla programistów, którzy chcą stopniowo migrować do nowoczesnych funkcji językowych Slang. Na przykład Valve skompilował całą produkcyjną bazę kodu HLSL Source 2 w języku Slang, modyfikując tylko 10 linii kodu.
Slang obsługuje automatyczne różnicowanie jako pierwszorzędną funkcję językową, dzięki czemu idealnie nadaje się do integracji obliczeń neuronowych z modułami cieniującymi grafikę. Slang może automatycznie generować kod propagacji do przodu i do tyłu dla złożonych funkcji, aby łatwo różnicować istniejące bazy kodu renderującego lub używać Slang jako języka jądra w strukturze uczenia maszynowego opartej na PyTorch za pośrednictwem slangtorch. Na przykład slang jest używany w Slang.D Gaussian Splatting Rasterizer, ujednoliconej platformie do renderowania odwrotnego i różniczkowego w czasie rzeczywistym, która może kompilować się w celu renderowania kodu dla różnych platform.
Slang ulepsza ekosystem standardów Khronos
Ustanowienie slangu jako nowoczesnego języka cieniującego, aktywnie utrzymywanego i kształtowanego przez społeczność, znacznie wzbogaca ekosystem standardów Khronos. Zaprojektowany, aby zwiększyć możliwości programistów, Slang poszerza wybór dostępnych języków cieniowania, aby zaspokoić różnorodne potrzeby i stymulować innowacje w całej branży.
Slang zapewni szybki dostęp do nowych funkcji API, w tym najnowszych funkcji Vulkan, i jest dostępny jako jedna z opcji języka cieniowania w pakiecie Vulkan SDK. Jako język „klienta”, Slang będzie również aktywnie przyczyniał się do ewolucji pośredniej reprezentacji SPIR-V, przynosząc w ten sposób korzyści szerszemu ekosystemowi kompilatorów opartych na standardach.
Zaangażować się
W ramach konferencji SIGGRAPH Asia 2024, która odbędzie się 4 grudnia w Tokio, Khronos będzie gospodarzem sesji Birds of a Feather zatytułowanej „Slang and the 3D Shading Language Landscape”, podczas której zbadana zostanie rola slangu w krajobrazie języków cieniujących 3D, jego sposób uzupełnia języki takie jak GLSL i HLSL oraz sposób, w jaki Slang umożliwia przenoszenie modułów cieniujących na wiele platform, w tym komputery PC, Internet, środowiska chmurowe, urządzenia mobilne i platformy Apple.
Projekt open source Slang gorąco zachęca wszystkich zainteresowanych programistów do dołączenia do Slang Discord i wniesienia wkładu w publiczne repozytorium Slang GitHub, gdzie mogą przesyłać żądania ściągnięcia, dokumenty RFC, raporty o błędach i nie tylko. Więcej informacji na temat slangu można znaleźć na stronie https://shader-slang.org/.
Wsparcie branżowe dla slangu
„Jesteśmy podekscytowani dojrzewaniem języka Slang, nabieraniem dynamiki w branży i przejściem do otwartego zarządzania w ramach Khronos — co stanowi poważny postęp dla społeczności programistów. W dziale 3D i immersji firmy Adobe aktywnie eksplorujemy slang w ramach naszej ujednoliconej rasteryzacji i renderer śledzący ścieżkę, rozpoznając jego potencjał jako wszechstronnego, ujednoliconego języka cieniowania Dzięki wyrazistej składni i nowoczesnemu projektowi, Slang oferuje prawdziwą obietnicę usprawnienia złożonych procesów cieniowania, i jesteśmy entuzjastycznie nastawieni do jego potencjalnej roli w udoskonalaniu naszego procesu renderowania” – powiedział Francois Beaune, dyrektor ds. renderowania w dziale 3D&I w firmie Adobe.
„Widzimy ogromne korzyści ze stosowania Slanga w zmniejszaniu złożoności kodu i narzutów na konserwację interfejsów API, a także w uwalnianiu potencjału przyszłych możliwości grafiki neuronowej. Z zadowoleniem przyjmujemy przejście Slanga na otwarty model zarządzania wieloma firmami w ramach Khronos i wierzymy, że przyniesie to ogromne korzyści ekosystemu języków cieniowania i całej branży graficznej” – powiedział Henrik Edstrom, wybitny architekt w dziale grafiki, Autodesk.
„Globalny krajobraz wymaga otwartego języka cieniowania, który umożliwia programistom i badaczom wprowadzanie innowacji w grafice bez ograniczeń i z dużą wydajnością. Slang opiera się na osiągnięciach istniejących języków, oferując jednocześnie nowatorskie rozwiązania wyzwań, przed którymi stoimy w dziedzinie rozwoju nowoczesnej grafiki, „ powiedział Billy Khan, dyrektor ds. technologii silników w id Software.
„Ustanowienie otwartego zarządzania i standaryzacja języka Slang – już przenośnego, wieloplatformowego języka shaderów – ma kluczowe znaczenie dla jego szerokiego zastosowania w branży. Dzięki ponad 20-letniemu doświadczeniu w rozwoju i standardach open source, Igalia z dumą wnosi naszą wiedzę specjalistyczną, aby pomóc w ugruntowaniu pozycji Slang jako dzięki tej wspólnej inicjatywie osiągnęliśmy standard branżowy” – powiedział Samuel Iglesias, koordynator zespołu ds. rozwoju sterowników GPU w firmie Igalia.
„Proces dostosowania naszej dużej bazy kodów shaderów HLSL do współpracy ze Slangiem przebiegł niezwykle sprawnie. Udało nam się zintegrować Slang z silnikiem Source 2 i wysłać wygenerowany SPIR-V do produkcji w wielu tytułach, w tym Counter-Strike 2 i Dota 2, z minimalnymi zmianami w naszych shaderach. Po zakończeniu wstępnej integracji zaadaptowaliśmy niektóre zaawansowane funkcje Slang, takie jak BufferPointer, elementy wyliczające, interfejsy i elementy generyczne. Jesteśmy bardzo wdzięczni za ofertę firmy NVIDIA Slang do społeczności open source i wierzę, że stały wkład wielu firm w Khronos pomoże zapewnić Slangowi zdrową przyszłość” – powiedział Dan Ginsburg, programista w Valve.