Обучение GPU-программированию: подход compute-first вместо традиционного рендеринга
https://themaister.net/blog/2025/10/05/a-case-for-learning-gpu-programming-with-a-compute-first-mindset/
Автор считает, что традиционный подход к изучению программирования графики сложен и неэффективен, и предлагает обучать GPU-программированию с акцентом на вычисления (compute-first), а не на графику, начиная с отладки и профилирования, а не с рендеринга «Hello Triangle». Он рекомендует использовать Vulkan для изучения вычислений, упоминает свой инструмент Granite как промежуточную абстракцию API, подчёркивает важность RenderDoc для отладки, предлагает начинать с Vulkan GLSL, а затем рассматривает такие темы, как работа с дескрипторами, ISA, шейдерные замены и другие аспекты программирования GPU. В конце автор перечисляет направления для дальнейшего изучения, включая атомики, безблокировочное программирование, операции с подгруппами и работу с текстурами.
Что сказать. Тут вспоминаются истории битв в начале моей карьеры. В основном битв с С++ программистами. Ведь GC для слабых духом, сильные пишут смарт поинтеры и в ручную управляют памятью. На мой взгляд подобный подход это что-то на староверческом и очень далеком от реалий бизнеса и устройства реального мира. Нафига изобретать лопату и понимать как её сделать если твоя задача выкопать яму?
Есть очень узкий спектр кейсов где понимание того как вообще работает железо полезно. Но с тезисом, что эффективнее учиться с понимания этих фактов я не согласен. Это просто изучение лопаты, а не того что с ней можно делать. А для реализации огромного спектра задач и продуктов не нужна ни математика, ни понимание работы памяти, ни понимание устройства баз данных. И уж тем более там не нужно понимание устройства графических ускорителей или тех же процессоров. Да, конечно же для углубленного понимания и решения задач высокого уровня - это всё надо и ещё горочка предметной области сверху. Но это уровень профессионала, а не начала обучения.
Я лично ушел когда-то в игры и в фронт в основном, так как бек мне не нравился тем, что я будто бы не вижу сразу результат своих действий. Я всегда любил, чтобы то что ты сделаешь сразу давало какой-то визуальный результат. Да и учиться я начал по стечению обстоятельств с создания сайтов. Поэтому изучать абстрактные знания без практического понятного применение для меня около невозможная задача. Мне банально скучно. Скажем первым языком был питон, и я всем знакомым рекомендую начать с Python, потому что там проще всего взять и запустить програму. Так сказать самый низкий порог входа. Потому что в школе я забил на программирование сайтов, так как тупо не понял как развернуть Apache, чтобы сайт открывался не только со статик html у меня на компе. А в Волгограде в то время курсов по разработке или тех кто мог бы мне это объяснить не было. Когда же я начал учиться в универе я понял, что объяснить человеку который далек от разработки как в те времена написать и скомпилировать простейшую программу на плюсах - это прям сложно. А на питоне всё элементарно и материалы были даже тогда.
Поэтому точка зрения автора любопытная, но я с ней не согласен 🙂
#интересное
Post #1743
1.29K