Конференция работает на сервере Netberg

Radeon.ru

Конференция Radeon.ru

Страница 1 из 1 [ Сообщений: 10 ]  Версия для печати [+]
Показать сообщения за  Поле сортировки  
Обсуждаем
http://radeon.ru/articles/technology/chiparch/

Мое мнение.
Автор конечно старался, только мало чего понимал и понимает.
Считать АЛУ, тем более скалярный элемент блока, как "шейдерный конвеер (процессор)" это апофеоз заблуждений.
Нельзя путать блоки, которые просто считают, с блоками, которые выполняют код. Это разные уровни.

Для начала мои определения:
Конвейер — блок рассчитывающий конечный результат (пиксель экрана) для полигона. В современных чипах обрабатывает блок 2*2 (aka quad, для более эффективной работы с памятью и выборки текстур), дополнительная ОБРАБОТКА данных контролируется программой (пиксельным шейдером) и следовательно является процессором.
Блок растеризации (ROP, Raster Operator) — блок получающий результат с конвейеров и выполняющий для него проверку z и stencil отсечения, запись в (объединение с) frame, z, stencil буферами.
Блок текстурирования (TMU, Texture Mapping Unit) — блок конвейера производящий определение необходимых текстурных данных, их выборку и фильтрацию. Естественно, они давно в quad режиме. Например, для билинейной фильтрации производится выборка с текстуры (2*2)*(2*2)=16 значений, после фильтрации получаем 2*2 = 4 значения.
Блок вычислений (ALU) — блок конвейера производящий арифметико-логические операции над данными. Естественно, работает в quad режиме. И как правило имеет минимальную ширину достаточную для обработки 4-х компонентного вектора, т.е. имеет несколько скалярных АЛУ для более быстрой обработки вектора.

Для примера раскатаем несколько чипов
G92
8 кводовых конвееров (процессоров) — это полноценный процессор, который выполняет свой код и обрабатывает сразу 2х2 пиксела.
у каждого конвеера:
1. 2 блока адресации и фильтрации текстур. Итого 8*(2*2)*2 = 64 фильтрованных.
2. один кводовый блок скалярных АЛУ. Итого 8 процессоров * (кводовые 2*2) * вектор4 = 128 современных попугая, якобы "процессора", а на самом деле скалярных АЛУ

R570
3 кводовых конвейера
1. один текстурный блок. Итого 3*(2*2)*1 = 12 фильтрованных значений.
2. 3 АЛУ блока. Итого 3*(2*2)*3 = 36 блоков АЛУ, каждый из которых может проглотить до 4 + 4 компонент, итого 288 "современных попугаев".

R670
4 кводовых конвейера
1. один текстурный блок. Итого 4*(2*2)*1 = 16 фильтрованных значений.
2. 4 АЛУ блока. Итого 4*(2*2)*4 = 64 блока АЛУ, каждый из которых может проглотить до 4 + 1 компонент, итого 320 "современных попугаев".

R730
8 кводовых конвейеров
1. один текстурный блок. Итого 8*(2*2)*1 = 32 фильтрованных значений.
2. 2 АЛУ блока. Итого 8*(2*2)*2 = 64 блока АЛУ, каждый из которых может проглотить до 4 + 1 компонент, итого 320 "современных попугаев".

R770
10 кводовых конвейеров
1. один текстурный блок. Итого 10*(2*2)*1 = 40 фильтрованных значений.
2. 4 АЛУ блока. Итого 10*(2*2)*4 = 160 блоков АЛУ, каждый из которых может проглотить до 4 + 1 компонент, итого 800 "современных попугаев".

R740
8 кводовых конвейеров
1. один текстурный блок. Итого 8*(2*2)*1 = 32 фильтрованных значения.
2. 4 АЛУ блока. Итого 8*(2*2)*4 = 128 блока АЛУ, каждый из которых может проглотить до 4 + 1 компонент, итого 640 "современных попугаев".


Последний раз редактировалось Tosser 22:15 11.06.2009, всего редактировалось 2 раз(а).
По своей сути арифметическо-логическое устройство и то, что я подразумевал в статье под конвейерами, разные вещи и не в коем случае нельзя между ними ставить знак равенства, как вы это делаете.
Конвейер никогда не являлся процессором, а лишь его составной частью. Конвейер -- это совокупность вычислительных устройств, последовательно участвующих в обработке данных, на что требуется определённое количество стадий (тактов). Пример классического 5-стадийного конвейера: выборка, декодирование, загрузка операндов, выполнение, запись результата. Чем сложнее операция, тем больше тактов требуется для прохода расчётной части конвейера. Когда речь идёт о графпроцессорах, под конвейерами подразумевают логику, обрабатывающую шейдерные команды, хотя эта логика является лишь частью общего конвейера. Блоки текстурирования и растеризации тоже являются частью общего конвейера, так как обрабатывают данные, полученные с шейдерных блоков.

Кстати, не имеет значения, как будет обрабатываться Vec4: все 4 значения параллельно на разных конвейерах или пускай даже последовательно на одном и том же. Важна конечная скорость обработки. 128-битные SSE команды долгое время обрабатывались со скоростью двух 32-битных значений за такт, а с выходом Core 2 и Phenom она удвоилась. Каким именно способом это было достигнуто, не уточняется, важен результат.

>Для начала мои определения:

Это именно что ваши определения :) Да и ещё, вы в своих примерах перепутали "R" с "RV", да и сами примеры плохо поддаются пониманию, поскольку вы путаете блоки и кластеры (группы блоков).

По своей сути арифметическо-логическое устройство и то, что я подразумевал в статье под конвейерами, разные вещи и не в коем случае нельзя между ними ставить знак равенства, как вы это делаете.

Ну да, я одно слово пропустил. Но где же я знак равенства ставил? А вот в статье их полно "обладает 320-ю унифицированными шейдерными конвейерами".

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

Вот ты и описал конвейер процессора, а точнее, конвейерную архитектуру процессора.


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

1. Конвейер в граф процессорах был когда еще щейдеров не было. Он был фиксированный, позволял управлять всего несколькими параметрами. Не было у него потока команд, только поток данных.
2. Блоки растеризации лежат отдельно, к ним приходит уже готовый результат.


Кстати, не имеет значения, как будет обрабатываться Vec4: все 4 значения параллельно на разных конвейерах или пускай даже последовательно на одном и том же. Важна конечная скорость обработки. 128-битные SSE команды долгое время обрабатывались со скоростью двух 32-битных значений за такт, а с выходом Core 2 и Phenom она удвоилась. Каким именно способом это было достигнуто, не уточняется, важен результат.

1. Например, gf8100/8200/8300/9100/9200m g имеют 8 АЛУ. Если я не ошибаюсь, и у них один кводовый процессор, а не двойной, то получается что на каждый пиксель приходится блок АЛУ всего с 2-я скалярными АЛУ.
2. У коро2 и феномов блоки ФПУ были расширены в два раза. А у пня4 он работал на половинной частоте. Делайте выводы.


>Для начала мои определения:
Это именно что ваши определения :) Да и ещё, вы в своих примерах перепутали "R" с "RV", да и сами примеры плохо поддаются пониманию, поскольку вы путаете блоки и кластеры (группы блоков).

По сравнению со статьей это идеал. Мне лично все понятно, если пойму что-то вас смущает — поправлю.
Tosser
Данная дискуссия может длиться вечно. В свое время я прочитал множество статей про видеокарты с унифицированной шейдерной архитуктурой. То, что вы называете ALU, разные авторы трактуют по разному. Кто-то пользуется определением "шейдерные конвейеры", кто-то "унифицированные шейдерные процессоры", другой "ALU", как и вы. Как бы их не называли, главное одно — что бы статья была понятна конечному пользователю — читателю. Поэтому прошу учесть это и быть более конструктивным, и не "сыпать" фразами типа: автор конечно старался, только мало чего понимал и понимает или по сравнению со статьей это идеал. Любой другой, понимающий архитектуру современных видеочипов, может разнести ваши определения в пух и прах. Ничто не идеально. Тем более у вас много путаницы :)

Tosser
Данная дискуссия может длиться вечно. В свое время я прочитал множество статей про видеокарты с унифицированной шейдерной архитуктурой. То, что вы называете ALU, разные авторы трактуют по разному. Кто-то пользуется определением "шейдерные конвейеры", кто-то "унифицированные шейдерные процессоры", другой "ALU", как и вы. Как бы их не называли, главное одно — что бы статья была понятна конечному пользователю — читателю. Поэтому прошу учесть это и быть более конструктивным, и не "сыпать" фразами типа: автор конечно старался, только мало чего понимал и понимает или по сравнению со статьей это идеал. Любой другой, понимающий архитектуру современных видеочипов, может разнести ваши определения в пух и прах. Ничто не идеально. Тем более у вас много путаницы :)

1. Апеллировать к заблуждениям других авторов бесполезно, их ошибки на их совести. Тем более авторы использующие такую терминологию в большинстве рекламщики.
Есть устоявшиеся понятия, и использовать их не по назначению проявление безграмотности.

2. Повторю еще раз (в последний):
Процессор (ядро) — это то что выполняет код (не одну команду, а их последовательность) и обрабатывает данные. Процессор имеет конвейерную архитектуру.
Не может один блок процессора, тем более одна из его частей, называться процессором или конвейером, даже с приставкой "шейдерный".

3. Разносите.
Tosser
Странно, даже на зарубежных сайтах то, что по вашему не может называться процессором или конвейером, даже с приставкой "шейдерный". называется потоковыми процессорами. И на ведущих российских опять же процессоры универсальные, шейдерные..., но не как не скалярные АЛУ, обвинять автора в тех. неграмотности все равно, что поправлять каждого водителя который назвал рулевое колесо рулем. Да и простому обывателю так понятнее, т.к. статей типа ( к примеру ) AMD R600: вся правда о 320 потоковых процессорах или 64 унифицированных шейдерных блоках до фига , а вот про АЛУ, тем более скалярные крайне не много, лишний тараканизм для мозгов.
Не морочьте автору и простым пользователям голову. Изображение
Michael
Классная статья, правда ни чего нового не узнал, но зато все в куче. Изображение
Tosser

Повторю еще раз (в последний):
Уже уходите? Даже чаю не попьете? :gigi:


Разносите.
Что разносить? :confused:


rig
Спасибо за поддержку :beer:
Tosser

>Процессор (ядро) — это то что выполняет код (не одну команду, а их последовательность) и обрабатывает данные. Процессор имеет конвейерную архитектуру.

Именно. Хотя может и не иметь конвейерной архитектуры.

>Не может один блок процессора, тем более одна из его частей, называться процессором или конвейером, даже с приставкой "шейдерный".

Процессором не может, а конвейером -- вполне. Конвейеры объединяются в блоки, блоки -- в кластеры (группы блоков), а последние со вспомогетельной логикой и составляют графический процессор в целом.
Новая тема    Ответить  [ Сообщений: 10 ] 


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Удалить cookies конференции

Пишите нам | Radeon.ru