Не съдете хората, които опитват и не успяват. Съдете само онези, които не успяват да опитат.
Новини
Вицове
Форум
Снимки
Приятели

Партньори

Хостинг и домейн

Категории

Всички - 1716
Софтуер - 384
Любопитно - 230
Забава - 184
Други - 125
Булгаристан - 92
Игри - 76
Хардуер - 72
Интернет - 67
България - 53
Сигурност - 44
По света и у нас - 41
Музика - 41
Linux - 40
Програмиране - 38
Аванта - 38
Филми - 33
Хитринки - 31
Windows - 29
Куриози - 19
Вируси - 18
Къси разкази - 13
Романтика - 10
Драйвери - 10
Фото - 9
Телефони - 7
Статии - 6
Телевизия - 5
Финанси - 1
Хостинг и домейн

Новини

Статии >> 11.11.2005г. - 12:14ч. >> Rusenec | Коментари (13) | Shortcut

CPU and GPU

Здравейте.
Отдавна исках да напиша нещо относно една тема, която винаги ми е била интересна и по която имам виждане, което на много хора може да се стори странно или неправилно, но за мен си струва да се поразсъждава в тази насока.
Преди да изложа мислите си искам да напиша нещо като Disclamer:
Това са лични мисли и дори да са обосновани от определени технически факти възможно е в тях да има пристрастие към определена технология, поради факта, че имам определени предпочитания към дадена технология като човек, който се занимава с писане на графичен софтуер (по точно ПЦ игри). Целта на изложените мисли не е да се получи Falme War, а да се споделят виждания относно даден проблем. При опит за развитие или решаване на някакви проблеми винаги се получава сблъсък, така че моля никой да не се чувства засегнат, обиден или Flamed – не е това целта.

Сега след като написах това спокойно мога да кажа, че съм дълбоко разочарован от двете световни фирми за производство на процесори. Става дума разбира се за AMD и Intel. Аз като абсолютен привърженик на техническия прогрес и напредването на технологиите и в същото време програмист, не мога да не се възмутя от факта, че The PR Spinners на тези фирми ни заливат с какви ли не реклами и приказки колко са велики новите им технологии, а всъщност нищо на практика не се променя и не се усъвършенства. В потока от информация и псевдо Hi-Tech babbling, хората си мислят, че тези две фирми ни предлагат върха на сладоледа и просто са ни изстреляли в космоса – Dual Core – едва ли не се обявява за свещения Граал при процесорите, ето още неусвоена тази технология вече се говори за 3-4 и повече ядра. Но каква е истината в същност?. Нищо не се променя за нас, хората, които пишат софтуер. С отчайващо високомерие производителите на ЦПУ-та казват – ето ви силикона – вие се спасявайте. А това спасение става все по-невъзможно и трудно с остарелите методи, които самите ЦПУ-та предлагат – т.е. никакви. Тук много от вас ще се запитат – но за какво става дума всъщност?
Ще трябва да навляза в малко повече технически подробности за да стане по-ясно. Какво значи Dual Core (не се съмнявам, че четящите тази тема са наясно) – ПР магьосниците на АМД(най-вече, защото са по-напред) и Интел(защото нямат друг избор, въпреки че технологично са по-назад с материала от АМД) изливат реки от увещания, обещания и пояснения колко е велика Dual Core технологията и как едва ли не ще ни изстреля в съседната галактика, как всички сега дружно трябва да се прегърнем и да почнем да пишем супер умни, велики многонишкови програми и всичко ще стане 2х бързо, или направо 3 в 1. Но никой не отговаря на въпроса като как да стане това? Всъщност някои се опитват – Интел показват в една лекция на Интел форума как да се пише !@?! за новите ЦПУ-та с 2 ядра, има подобни документи и на АМД. Става дума за умопомрачителен хаос и какфония, смесена с ниво на сложност клонящо към безкрайност.
Нека си представим сега един продукт от ранга на... да речем Халф Лайф 2 – разработването на нещо такова е толкова огромен труд, че писанията на великите мислители от Интел и АМД как да улесним програмистите изглеждат просто жалки. Защото това не е улеснение, а още по-голямо усложнение – синхронизация на нишки, синхронизация на ниво функции примесено с и без това огромната вече сложност на разработване на един съвремемнен топ продукт, който използва най-новите технологии.
Тогава какво? Не можем да си стоим вечно на едно ядро и да не ползваме огромните облаги на паралелизма...
Абсолютно вярно...тук се намесват ГПУ-тата. На GDC преди 2 години един девелопер от много известно студио, което няма да назовавам тук, стана и каза право в очите на нВидия и АТИ – оправете си продуктите, защото скоро никой няма да иска да се занимава с вас да пише по 2-3 кодови пътя – това е безумно. Неочаквано за много хора също доста надменните две компании заедно с Microsoft се събраха и решиха – оставяме пътя на хардуерната зависимост и се опитваме да освободим девелопер-а от колкото се може повече специфики на ниско ниво. Microsoft тотално подобриха идеологията на DirectX8, която изискваше прекалено съобразяване със специфичния производител на ГПУ-то и отиде към DirectX9, където всичко стана много по-генерализирано, много по-изчистено и изнесено на по-високо равнище. От своя страна АТИ и нВидия (особено) седнаха сериозно на д-тата си и решиха – ще използваме драйвера маскимално като предмостие за девелопера – не само ще управляваме хардуер-а, но ще го управляваме умно.
Какво се получи в крайна сметка – чист паралелизъм без дори нужда ред код да се сменя (в общия случай). Апогей на тази технология в момента е SLI технологията на нВидия, която все още е нова разбира се и се променя и развива постоянно, подобрява се. Има много още да се желае от нея, но тя е като нешлифован диамант. Две карти работят в паралел. Говорим не само за два графични процесора, но и за памет, шина...почти самостоятелно ПЦ, без перифериите. И о чудо, за да работят в паралел не се изисква нищо от програмиста. Има драйвер който решава кое къде да се обработи. Ето това е бъдещето.
И нека сега погледнем общата картинка – аз като девелопер, за да ползвам новата технология на нВидия или АТИ за паралелна работа, няма нужда да усложнявам и без това вече усложнения си живот на девелопер с излишно ровене в управление на хардуер-а, той сам си решава кое къде да обработва благодарение на умно разработения драйвер.
От друга страна, за да използвам „великото” творение на АМД или Интел аз трябва да добавя тонове допълнителен код, да вкарам тонове потенциални грешки и усложнение на логиката, само защото тези „велики” фирми не могат да създадат наистина паралелна технология с нужните средства тя да бъде използвана максимално удобно.
Знаете ли как се превключват скоростите в болидите на Ф1? Предполагам да, за тези които не знаят – те са полуавтоматични – пилотът има 2 педала – газ и спирачка – на волана му има бутони за превключване на скорост – той подава сигнал за превключване на скоростта и оттам нататък всичко става автоматично – отлепяне на съединителя, смяна на скоростта, отново залепяне на съединителя. Е, това е болида на нВидия и АТИ. А сега нека се върнем около 10-ина години назад – Имаше по един голям лост в болидите и съединител – пилота си натискаше съединителя и си ръчкаше като грешен дявол скоростите. Да, двигателите пак си бяха бързи за времето, но никой сега не си и помисля да занимава пилотите със загуба на време и ресурси да ръчкат лостове и натискат пeдали излишно, те си имат достатъцно неща да правят при скорост от 350 км/ч.
Защо тогава техни величества АМД и Интел стоварват всичко на гърба на девелоперите и накрая те са великите, а ние сме тези, на които по конференции се казва „Ама не...тц...вие не ползвате хардуера ни максимално...затова програмите ви са бавни”?
Директно сравнение не може да има между графичен и централен процесор разбира се, те са различни като технология и като приложение, но като решения и усъвършенстване производителите на ЦПУ-та остават много назад. Количествените промени, някой беше казал, водят до качествени изменения...
Е надявам се да видим и качествени изменения при АМД и Интел, защото засега виждам само количествени. От друга страна АТИ и нВидия благодарение на жестоката динамична конкуренция между тях и смелите решения които се вземат за усъвършенстване на технологията, за 5 години направиха такова развитие на технологията, каквото АМД и Интел за 10 не са направили.
Бъдешето – безспорно то принадлежи на паралелизма. Вече се чуха и първите обвинения от учени на нВидия към производителите на ЦПУ-та, че спират прогреса и не развиват технологията и изостават от тях (разбирайте нВидия). Радостно за мен е, че производителитен а ГПУ-та сериозно са се насочили на там и най-радостното е, че не го правят за сметка на девелопера, а в негова изгода. Не знам дали качествено нещо ще се промени при поизводителите на ЦПУ-та, в последните години конкуренцията при тях е толкова умряла и някак си замръзнала, няма динамиката на конкуренцията между АТИ и нВидия, всичко е толкова сухо, че накрая го отнасяме ние – девелоперите и в крайна сметка потребителите.
По тази тема може да се пише много, страници и страници, тя може да бъде огледана от много различни страни, много доводи да бъдат изтъкнати за и против едно или друго, темата е като заешката дупка – не се знае колко е дълбока, но...нека не ви отегчавам повече...
А това което искам е толкова просто...когато дам $1000 за процесор с 2 ядра да не се налага да пиша 50 реда код, за да накарам това чудо на човешкия гений да сметне
Х = (2+3) * (4+5) паралелно...


Търсене



Последни събития

• Новина    (07.11-11:44ч.)
Виц         (30.09-18:21ч.)
Коментар (19.08-12:42ч.)
Виц         (11.07-18:27ч.)
• Новина    (19.06-11:54ч.)
Коментар (04.06-22:51ч.)
• Новина    (11.01-22:50ч.)
• Новина    (17.11-13:22ч.)
• Новина    (14.11-09:58ч.)
• Новина    (24.08-11:50ч.)


посещения: 3583561 | онлайн: 56 | sms: 16844 | уникални днес: 123 | импресии днес: 1664 Реализация Милен Василев © 2002
Играй онлайн Sokoban