Страница 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-ю унифицированными шейдерными конвейерами". |
Вот ты и описал конвейер процессора, а точнее, конвейерную архитектуру процессора.
1. Конвейер в граф процессорах был когда еще щейдеров не было. Он был фиксированный, позволял управлять всего несколькими параметрами. Не было у него потока команд, только поток данных. 2. Блоки растеризации лежат отдельно, к ним приходит уже готовый результат.
1. Например, gf8100/8200/8300/9100/9200m g имеют 8 АЛУ. Если я не ошибаюсь, и у них один кводовый процессор, а не двойной, то получается что на каждый пиксель приходится блок АЛУ всего с 2-я скалярными АЛУ. 2. У коро2 и феномов блоки ФПУ были расширены в два раза. А у пня4 он работал на половинной частоте. Делайте выводы.
По сравнению со статьей это идеал. Мне лично все понятно, если пойму что-то вас смущает — поправлю. |
Tosser
Данная дискуссия может длиться вечно. В свое время я прочитал множество статей про видеокарты с унифицированной шейдерной архитуктурой. То, что вы называете ALU, разные авторы трактуют по разному. Кто-то пользуется определением "шейдерные конвейеры", кто-то "унифицированные шейдерные процессоры", другой "ALU", как и вы. Как бы их не называли, главное одно — что бы статья была понятна конечному пользователю — читателю. Поэтому прошу учесть это и быть более конструктивным, и не "сыпать" фразами типа: автор конечно старался, только мало чего понимал и понимает или по сравнению со статьей это идеал. Любой другой, понимающий архитектуру современных видеочипов, может разнести ваши определения в пух и прах. Ничто не идеально. Тем более у вас много путаницы |
1. Апеллировать к заблуждениям других авторов бесполезно, их ошибки на их совести. Тем более авторы использующие такую терминологию в большинстве рекламщики. Есть устоявшиеся понятия, и использовать их не по назначению проявление безграмотности. 2. Повторю еще раз (в последний): Процессор (ядро) — это то что выполняет код (не одну команду, а их последовательность) и обрабатывает данные. Процессор имеет конвейерную архитектуру. Не может один блок процессора, тем более одна из его частей, называться процессором или конвейером, даже с приставкой "шейдерный". 3. Разносите. |
Tosser
Странно, даже на зарубежных сайтах то, что по вашему не может называться процессором или конвейером, даже с приставкой "шейдерный". называется потоковыми процессорами. И на ведущих российских опять же процессоры универсальные, шейдерные..., но не как не скалярные АЛУ, обвинять автора в тех. неграмотности все равно, что поправлять каждого водителя который назвал рулевое колесо рулем. Да и простому обывателю так понятнее, т.к. статей типа ( к примеру ) AMD R600: вся правда о 320 потоковых процессорах или 64 унифицированных шейдерных блоках до фига , а вот про АЛУ, тем более скалярные крайне не много, лишний тараканизм для мозгов. Не морочьте автору и простым пользователям голову. Michael Классная статья, правда ни чего нового не узнал, но зато все в куче. |
Tosser
Уже уходите? Даже чаю не попьете? Что разносить? rig Спасибо за поддержку |
Tosser
>Процессор (ядро) — это то что выполняет код (не одну команду, а их последовательность) и обрабатывает данные. Процессор имеет конвейерную архитектуру. Именно. Хотя может и не иметь конвейерной архитектуры. >Не может один блок процессора, тем более одна из его частей, называться процессором или конвейером, даже с приставкой "шейдерный". Процессором не может, а конвейером -- вполне. Конвейеры объединяются в блоки, блоки -- в кластеры (группы блоков), а последние со вспомогетельной логикой и составляют графический процессор в целом. |
Новая тема Ответить | Страница 1 из 1 |
[ Сообщений: 10 ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |