През последната седмица бях написал парче за неясни спецификации на GPU. Въпреки че изложи някои от най-объркващите части от спецификациите в видеокарти, редица читатели се занимаваха с статията, заявявайки, че може да е по-подробна. Би било подходящо да отговорите на още въпроси относно компонентите на графичната карта, които не бяха задължително отговорени на тази статия в това парче. Без допълнително предупреждение, ще намерите някои отговори на най-належащите въпроси относно спецификациите на видеокартата, които не изглеждат напълно обяснени от гледна точка на всички, които могат да разберат в мрежата.

Какво представлява CUDA и какво представлява ядрото на CUDA?

Компютърът на архитектурата на Unified Device Architecture (CUDA) е функция в повечето по-нови графични карти на Nvidia, които позволяват на компютъра да използва част от GPU (или дори пълния графичен процесор) като "асистент" на процесора. Графичните процесори пакетират много повече мускули от компютрите, но тяхната архитектура в исторически план е по-оптимизирана за изчисляване на разстоянията на рисуване и многоъгълниците (което е причината за това, че са закачени на графични карти на първо място). CUDA трансформира графичния процесор в математически геометър, който може много бързо да разтърси числата, използвайки безупречната мускулна сила на GPU за други неща, а не просто изобразяване и показване на графики на екрана.

В статията, свързана в началото, обясних, че SETI @ Home се възползва от CUDA, като използва графични карти за извършване на изчисления. Това е само един пример за това как CUDA може да се използва за извършване на невероятни неща. CUDA може да се използва и за прекодиране на видео (конвертиране от един формат в друг), използвайки специален кодек, който комуникира с хардуера. Енкодерът на Nvidia е известен като NVENC и е мощен начин за кодиране на видеото много по-бързо, използвайки видеокартата на графичните карти, за разлика от изчерпването на процесора. Ако сте програмист и се интересувате от включването на NVENC в програмата си, можете да видите ресурсите на Nvidia тук.

Добре, така че сега знаем какво е CUDA. Какво ще кажете за CUDA ядра?

CUDA сърцевината е един от сегментите на GPU, който може да се използва за целите на CUDA. Това е част от графичния процесор, тъй като някои мониторингови програми наричат ​​"Video Engine". Всяко ядро ​​е малка част от цялата архитектура на GPU, която може да се използва както за традиционно 3D изобразяване, така и за CUDA специфични функции. В повечето графични карти цялата GPU е достъпна за работа с CUDA. Това означава, че броят на CUDA сърцевините в GPU всъщност определя колко ядра има цялата GPU.

Защо графичните процесори имат толкова много ядра?

Докато днешните процесори обикновено имат четири до осем ядра, има графични карти там с над 5000 ядра! Защо това е и защо процесорите не разполагат с такива луди ядра?

GPU и CPU са създадени за различни цели. Докато процесорът реагира на кода на машината, за да комуникира с различни хардуерни компоненти на компютъра ви, графичният процесор е създаден само с една конкретна цел: трябва да прави полигони в красивите сцени, които виждаме в ускорена 3D среда и след това да превеждаме всички тези неща в изображение 60 пъти или повече в секунда. Това е високата поръчка на процесора, но тъй като GPU има отделни полигонни процесори, той може да раздели работното натоварване между всичките си сърца, за да направи графична среда в рамките на няколко милисекунди.

Това е мястото, където входовете влизат. GPU се нуждае от всички тези ядра, за да разделят масивните задачи на малки парчета, като всяко ядро ​​обработва собствената си част от сцената поотделно. Приложенията, които използват процесори (като браузъра ви), не се възползват от такъв огромен брой сърцевини, освен ако всяко ядро ​​не притежава мускулната сила на цяла обработваща единица. Вашият браузър разчита на бърз достъп до информация, за разлика от разделянето на задачите. Когато зареждате уеб страница или четете PDF файл, се нуждаете само от един поток за обработка, за да заредите всичко това.

Дали повече RAM правят картина по-добра?

RAM е малко странно сива зона с видео карти. Докато е хубаво да имате колкото е възможно по-голяма RAM, трябва да можете да използвате и цялата тази RAM . Видеокартата с 1024 MB RAM и 192-битов шин ще работи много по-добре от видеокарта с 2048 MB RAM и същата шина.

Както обясних в предходното парче, видео картата с размери 2048 MB ще изпита нещо наречено "затруднено пренасяне на честотната лента", защото автобусът (пътят, по който се движат данните) не е достатъчно широк, за да носи достатъчно количество данни в малко количество време.

Накратко, не, повече RAM не е непременно по-добре, ако видеокартата няма широк автобус. Ето моето ръководство за правилната ширина на шината: Видео картата ви трябва да има максимум осем пъти размера на RAM в мегабайти като броят битове в автобуса. Например, 1024 MB карта трябва да има поне 128-битова шина (1024/8 = 128). Затова за 2048 MB карта препоръчвам минимум 256 бита.

Ако все още имате още въпроси, не забравяйте да ги попитате в коментарите по-долу!