Инженер-самоучка обнаруживает, что графические процессоры на самом деле невероятно сложны и их трудно проектировать

Инженер-самоучка обнаруживает, что графические процессоры на самом деле невероятно сложны и их трудно проектировать

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


Как энтузиаст электротехники, я могу сказать вам по результатам своих исследований, что проектирование элементарного центрального процессора (ЦП) с нуля требует необходимых ресурсов, опыта и упорства. Он никак не будет напоминать современные процессоры, а как насчет графических процессоров (GPU)? Раньше я думал, что они будут похожи, но, черт возьми, я ошибался! Один инженер-программист приступил к этому амбициозному проекту только для того, чтобы узнать горькую правду: спроектировать графический процессор с нуля гораздо сложнее, чем можно себе представить.

Адам Маймудар делится своим опытом и проблемами в изучении архитектуры центрального процессора и создании собственного процессора в Твиттере, как сообщает Tom’s Hardware. Его усилия не похожи на коммерческие чипы для игровых компьютеров, а навевают воспоминания о разработке простых 4-битных процессоров прошлых десятилетий.

Использование современных программных решений и языков описания аппаратного обеспечения делает задачу более управляемой, но она остается сложной задачей.

Переполненный триумфом, Маджмудар решил, что пришло время повторить это достижение с помощью графического процессора (GPU). Действительно, фундаментальная конструкция шейдерного блока поразительно похожа на конструкцию арифметико-логического устройства (АЛУ) и может похвастаться такими важными компонентами, как: вычислительные блоки для выполнения математических операций, регистры хранения данных, блок обработки данных, отвечающий за загрузку и хранение информации. и систему управления, организующую процесс выполнения.

Как страстный геймер и энтузиаст технологий, я понял, что, хотя центральные процессоры (ЦП) и графические процессоры (ГП) имеют некоторые общие черты, их подходы к управлению памятью и обработке потоков существенно отличают их. Важно признать, что Маджмудар не ставил перед собой цель создать обычный графический процессор; вместо этого он разрабатывал графический процессор общего назначения (GPGPU). Это означает, что в отличие от традиционных графических процессоров со встроенными системами, такими как настройка треугольника, блоки наложения текстур (TMU), блоки вывода рендеринга (ROP) и многочисленные схемы с фиксированными функциями, Маджмудара сосредоточили внимание на более универсальной архитектуре графического процессора.

Несмотря на то, что он столкнулся с рядом проблем, его фундаментальная разработка графического процессора в конечном итоге оказалась успешной благодаря совместным усилиям по решению проблем. Ему удалось выполнить ограниченный набор инструкций и выполнить определенные матричные вычисления во время программного моделирования. Между тем, его разработки процессора и графического процессора будут реализованы в рамках проекта Tiny Tapeout.

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

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

Я собираюсь приступить к созданию графического процессора со 100 000 шейдерами. Хотите знать, какое имя ему подойдет – возможно, Рафорс или Гедеон? Учитывая мой опыт, GeFarce может оказаться более подходящим вариантом.

Смотрите также

2024-05-01 18:07