Читаем Журнал «Компьютерра» № 13 от 04 апреля 2006 года полностью

Самое главное — понимание организации памяти. Универсальной встроенной структурой данных в GPU является текстура. Текстуры бывают одномерные, двухмерные и трехмерные[Т. Кормен, Ч. Лейзерсон, Р. Ривест. Алгоритмы. Построение и анализ. — М.: МЦНМО, 2000]. Это прямой аналог многомерному массиву. Пиксел текстуры (тексел) -элемент массива. К сожалению, максимальные ширина, высота и глубина текстуры строго ограничены. Этот предел зависит от платы и от размерности и обычно равен 2048 или 4096. Поэтому одномерные текстуры становятся малоинтересными — в них вмещается слишком мало данных. Трехмерные текстуры отпадают по другой причине — они могут быть только считаны, но рисование в них невозможно. Остаются только двухмерные текстуры, в которые нужно научиться упаковывать все прочие структуры данных. Заметим, что эффективная размерность всех текстур на единицу больше, поскольку каждый тексел может содержать до четырех цветовых компонентов. Например, длинный одномерный массив можно упаковать таким образом: первые четыре элемента записываются в тексел на пересечении первой строки и первого столбца, следующие четыре — в тексел из второго столбца и так до исчерпания первой строки, затем всё продолжается со следующей строки и т. д.

Любопытна система адресации в текстуре, которая осуществляется заданием по каждой координате действительного числа из диапазона [0,1]. Расстояние (изменение индекса при переходе) между соседними текселами уже не 1, как в обычном массиве, а зависит от разрешения текстуры (рис. 3). Для получения точного значения тексела необходимо указать координаты центра его «квадратика», при запросе по другому адресу результат будет зависеть от текущего режима фильтрации.

Запись данных в текстуру достигается назначением ее в качестве цели рендеринга (render target). Последующее рисование какой-либо фигуры фактически выбирает обновляемые элементы текстуры (рис. 4). Обычно рисуют один большой треугольник, покрывающий цель рендеринга с запасом, либо прямоугольник точно совпадающих размеров. Неудобно то, что координаты углов фигур нужно задавать уже не в текстурных, а в отличающихся от них экранных (viewport) координатах. Итак, координаты вершины определяют рассчитываемые фрагменты. Входные аргументы пиксельному шейдеру передаются через ассоциированные с вершиной данные, в первую очередь через текстурные координаты.

Процедура обработки одинакова для всех пикселов. Поэтому о пиксельном шейдере можно думать как о теле некоторого цикла. Также можно, рисуя меньшие фигуры и «играя» с тестом глубины, применять различные шейдеры избирательно. Такая необходимость возникает, когда алгоритмы обработки внутренних и приграничных точек текстуры существенно отличаются и их невозможно или нецелесообразно совмещать в одном шейдере.

Простейшие программы

Сейчас мы уже знаем, что GPU способен применять одинаковую программу для вычисления значения каждого элемента одного массива, основываясь на данных других массивов. Есть ли алгоритмы, которые формулируются именно таким образом? Оказывается, есть. К этому классу относятся, например, методы фильтрации изображений и часть способов приближенного решения дифференциальных уравнений, отражающих динамические явления физики. Именно такие алгоритмы проще всего переносятся на GPU, и именно на них достигается наибольшее ускорение.

Давайте рассмотрим что-нибудь посложнее. Задача редукции массива заключается в нахождении какой-то скалярной функции его элементов. Это может быть сумма всех чисел массива, или величина максимума, или что-то в том же духе. Поскольку шейдер ограничен в количестве операций, за один проход рендеринга решить задачу решительно невозможно. Применяется следующий способ. Порождается вспомогательная текстура, размерами чаще всего вдвое меньше исходной по обеим осям. Используемый шейдер, заполняя ее, вычисляет функцию только от четырех величин. Затем вспомогательная текстура назначается на вход шейдера, а выходом служит еще вчетверо меньшая текстура. И так до получения текстуры из одного пиксела, которая содержит ответ (рис. 5). Число проходов составляет логарифм от начального размера массива.

Умножить матрицу на вектор при ограничениях Shader Model 2.0 тоже не так-то просто. Одно из определений гласит, что произведение является линейной комбинацией столбцов исходной матрицы, взятых с весами из второго сомножителя. Поступают таким образом. На первом шаге каждый элемент матрицы умножается на соответствующий ему вес — получается вторая матрица. Последующие шаги посвящаются комбинированию столбцов — редукции только по горизонтали.

Перейти на страницу:

Все книги серии Компьютерра

Похожие книги

«Если», 2010 № 01
«Если», 2010 № 01

ПРОЗАЕвгений ГАРКУШЕВ. ЧУЖАЯ ЖИЗНЬ, ИЛИ VIS VITALISУж сколько раз твердили миру: техническое задание нужно формулировать точно.Кори ДОКТОРОУ. ВСЕ ПРОЙДЕТ…Этот монашеский орден образован бывшими сисадминами. Мышь не проскочит сквозь их сети, но вот «крот» завелся.Рик НОЙБЕ. ПОЛЕВЫЕ ИССЛЕДОВАНИЯЕдинственное, во что они верят, это удача. Для вполне безобидных жителей безымянной планеты их суеверия превыше здравого смысла, жизни, будущего.Альберт КОУДРИ. СЫЩИКПровинциальный чудак примеряет крылатку Шерлока Холмса.Евгений ЛУКИН. СЕКОНДХЕНДЖНе лучшие времена переживает баклужинский чародей. Теперь вот любимый ученик подался в политику.Тед КОСМАТКА. СЛОВА НА БУКВУ «Н»«Тупиковая ветвь» вновь рискует оказаться в тупике. Социальном.Юн Ха ЛИ. ЦИТРА БЕЗ СТРУНГармония звуков, красок, чисел — и все это для того, чтобы уничтожить противника.КОНКУРС «КОЛЛЕКЦИЯ ФАНТАЗИЙ»Представляем читателям новых авторов.ВИДЕОРЕЦЕНЗИИСтранная зависимость: фантастических фильмов снимают больше и больше, а смотреть, по сути, нечего.Аркадий ШУШПАНОВ. НЕКУДА БЕЖАТЬОни пугают, а нам не страшно!. А может, все-таки страшно? Вдруг майя были правы?Александр РОЙФЕ МУЛЬТТРАНЗИТ: КОПЕНГАГЕН — БОГОТАПродолжение обзора фантастической мультипликации «непрофильных» стран.Дмитрий БАЙКАЛОВ. В ГРЕЦИИ ВСЕ ЕСТЬ!…А также все есть и в Голливуде!РЕЦЕНЗИИВ книжный магазин лучше всего идти после ознакомления с блоком рецензий. Это сэкономит ваши время и средства.Андрей ЩЕРБАК-ЖУКОВ. КАК СТРАШНУЮ СКАЗКУ СДЕЛАЛИ БЫЛЬЮОднажды 25 известных писателей решили написать большой фантастический роман. Это было в далекие 20-е годы. Но отдельной книгой роман вышел только теперь.Андрей СКОРОБОГАТОВ. ПЛЕЕР ДЛЯ ФЭНАОдни из самых преданных поклонников фантастики — рок-музыканты. Разумеется, это не могло не проявиться в их творчестве.Вл. ГАКОВ КИМВАЛ. ЗВУЧАЩИЙПо количеству написанных книг этот писатель давно уже догнал таких рекордсменов, как Айзек Азимов и Жорж Сименон.КУРСОР«Невероятно, но факт» — так можно сказать про любую новость из мира фантастики.ПЕРСОНАЛИИБольшинство имен вам уже хорошо знакомо, но есть и свежая информация, которая вас определенно зантересует.

Альберт Коурди , Евгений Гаркушев , Евгений Лукин , Кори Доктороу , Рик Нойбе

Фантастика / Журналы, газеты / Научная Фантастика
«Если», 2003 № 09
«Если», 2003 № 09

Александр ЗОРИЧ. ТОПОРЫ И ЛОТОСЫВ каркас космической оперы плотно упакованы очень непростой вопрос, весьма неожиданное решение и совсем неоднозначные герои.Анджей ЗЕМЯНСКИЙ. АВТОБАН НАХ ПОЗНАНЬЕсли говорить о жанре, то это польский паропанк. Но очень польский…Дэвид НОРДЛИ, ЛЕД, ВОЙНА И ЯЙЦО ВСЕЛЕННОЙЧтобы понять тактику и стратегию инопланетян, необходимо учесть геофизику этого мира — кстати, вполне допустимую в рамках известных нам законов. Представьте себе планету, которая… Словом, кое-что в восприятии придется поменять местами.Жан-Пьер АНДРЕВОН. В АТАКУ!…или Бесконечная Война с точки зрения французского писателя.Дмитрий ВОЛОДИХИН. ТВЕРДЫНЯ РОЗБойцу на передовой положено самое лучшее. И фирма не мелочится!Карен ТРЕВИСС. КОЛОНИАЛЬНЫЙ ЛЕКАРЬХоть кому-то удалось остановить бойню… И знаете, что радует: самым обычным человеческим способом.Василий МИДЯНИН. NIGREDO и ALBEDOОна + Он = Зорич.ВИДЕОДРОМПризрак комикса бродит по Голливуду… Терминатор бежит от терминаторши, хотя надо бы наоборот… Знаменитый российский сценарист рассуждает о фантастике.Павел ЛАУДАНСКИЙ. ПОСЛЕ ЗАЙДЕЛЯJeszcze Polska ne zgingla!Глеб ЕЛИСЕЕВ. «ОБЛИК ОВЕЧИЙ, УМ ЧЕЛОВЕЧИЙ…»Влезть в «шкуру» инопланетянина непросто даже фантасту.ЭКСПЕРТИЗА ТЕМЫ…Фантасты же пытаются объяснить, почему.РЕЦЕНЗИИДаже во время летних отпусков рецензенты не расставались с книгами.КУРСОРЛетом в России конвентная жизнь замирает, а в странах братьев-славян бьет ключом.Сергей ПИТИРИМОВ. ФОРМА ЖИЗНИ? ФОРМА ОБЩЕНИЯ!«В связях, порочащих его, замечен не был», — готов заявить о себе каждый пятый участник опроса.АЛЬТЕРНАТИВНАЯ РЕАЛЬНОСТЬМал золотник, да дорог.Андрей СИНИЦЫН. ЧЕТВЕРОНОГИЕ СТРАДАНИЯВидно, давно критик не писал сочинений. Соскучился.Владислав ГОНЧАРОВ. НОВАЯ КАРТА РОССИИПетербург за пределами Российской Федерации?.. Опасная, между прочим, игра в нынешней политической реальности.ПЕРСОНАЛИИСплошной интернационал!

Глеб Анатольевич Елисеев , Евгений Викторович Харитонов , Журнал «Если» , Павел Лауданский , Юрий Николаевич Арабов

Фантастика / Проза / Прочее / Журналы, газеты / Газеты и журналы / Эссе
«Если», 2003 № 07
«Если», 2003 № 07

ФАНТАСТИКАЕжемесячный журналСодержание:Александр Тюрин. ЗАПАДНЯ, рассказВиталий Каплан. СВОБОДА ВЫБРАТЬ ПОЕЗД, повестьВИДЕОДРОМ*Тема--- Николай Панков. С МОНИТОРА НА ЭКРАН. И ОБРАТНО, статья*Рецензии*Хит сезона--- Дмитрий Байкалов. ВЫБОР ИЗБРАННОГО, статья*Премьера--- Дмитрий Байкалов. ГОД СИКВЕЛОВ, статьяВиталий Пищенко, Юрий Самусь. КОМПЬЮТЕРНАЯ ЛЕДИ, рассказЭдвард Лернер. ПРИСУТСТВИЕ РАЗУМА, повестьДэвид Брин. ПРОВЕРКА РЕАЛЬНОСТИ, рассказИэн Маклауд. NEVERMORE, рассказБрайан Плант. «ТОЛЬКО ЧЕЛОВЕК», рассказСалли Макбрайд. ПОТОП, рассказ«КРУГЛЫЙ СТОЛ»«ПРОШУ РАССМОТРЕТЬ…» Материал подготовила Светлана ПрокопчикВЕХИ*Вл. Гаков. СКОЛЬКО БУДЕТ ДВАЖДЫ ДВА? статьяКРУПНЫЙ ПЛАН*Владимир Борисов. ПОД МИКРОСКОПОМ, эссеРецензииКрупный планСергей Питиримов. БОГ ИЗ МАШИНЫ, статьяКир Булычёв. ПАДЧЕРИЦА ЭПОХИ (продолжение серии историко-литературных очерковЭКСПЕРТИЗА ТЕМЫОльга Елисеева, Святослав Логинов, Валентин Шахов.Статистика*Дмитрий Ватолин. МЕЖ ДВУХ МИРОВ, статьяКурсорПерсоналии Обложка Игоря Тарачкова к повести Эдварда Лернера «Присутствие разума». Иллюстрации: Е. Капустянский, В. Овчинников, А. Филиппов, И. Тарачков, О. Дунаева, А. Балдин, С. Голосов.

Виталий Иванович Пищенко , Владимир Гаков , Дмитрий Ватолин , Журнал «Если» , Иэн Маклауд , Салли Макбрайд

Фантастика / Журналы, газеты / Научная Фантастика