Кіріспе
Физикалық өңдеу блогы (ФПБ) — физикалық есептеулерді, әсіресе бейнеойындардың физикалық қозғалтқыштарында жүргізуге арналған арнайы микропроцессор. Бұл аппараттық үдетудің мысалы. ФПБ-ға қатысты есептеулердің мысалдары қатаң дене динамикасы, жұмсақ дене динамикасы, соқтығысуды анықтау, сұйықтық динамикасы, шаш пен киімді модельдеу, шекті элементтерді талдау және нысандарды қиратуды қамтуы мүмкін. Мақсаты – арнайы процессорлар компьютердің CPU-ынан көп уақыт алатын міндеттерді алып, GPU негізгі CPU орнына графикалық операцияларды орындайтындай босату. Бұл термин Ageia компаниясы өздерінің PhysX чипін сипаттау үшін қолданған. CPU-GPU спектріндегі басқа да бірнеше технологиялардың кейбір ұқсас мүмкіндіктері бар, бірақ Ageia өнімі ғана толыққанды жобаланып, сатылып, қолдау көрсетіліп, жүйеге PPU ретінде ғана орналастырылған.
A physics processing unit (PPU) is a dedicated microprocessor designed to handle the calculations of physics, especially in the physics engine of video games. It is an example of hardware acceleration. Examples of calculations involving a PPU might include rigid body dynamics, soft body dynamics, collision detection, fluid dynamics, hair and clothing simulation, finite element analysis, and fracturing of objects. The idea is having specialized processors offload time consuming tasks from a computer's CPU, much like how a GPU performs graphics operations in the main CPU's place. The term was coined by Ageia to describe its PhysX chip. Several other technologies in the CPU GPU spectrum have some features in common with it, although Ageia's product was the only complete one designed, marketed, supported, and placed within a system exclusively being a PPU.
Тарих
ППУ-ның алғашқы академиялық зерттеу жобасы SPARTA (Нақты уақыт архитектурасындағы физиканы модельдеу) атымен белгілі болды және бұл жоба Пенн Стейт және Джорджия университетінде жүргізілді. Бұл екі өлшеммен ғана шектелген қарапайым FPGA негізіндегі ППУ болды. Бұл жоба HELLAS деп аталған, ASIC негізіндегі әлдеқайда жетілдірілген жүйеге дейін кеңейтілді. 2006 жылдың ақпан айында Ageia (кейін Nvidia-ға біріктірілді) компаниясы алғашқы арнайы PPU PhysX-ті шығарды. Бұл құрылғы ең тиімді түрде бөлшектік жүйелерді жеделдетеді, ал қатты дене физикасы үшін өнімділіктің шамалы ғана жақсаруы байқалды. Ageia PPU олардың АҚШ патенттік өтініші #20050075849-да толыққанды сипатталған. Nvidia/Ageia енді физикалық өңдеу үшін PPU және аппараттық жеделдетуді өндірмейді, бірақ қазір олардың графикалық процессорларының кейбіреулері арқылы қолдау көрсетіледі.
AGEIA PhysX
PPU деп жарнамаланған алғашқы процессор PhysX чипі деп аталды, оны AGEIA деп аталатын жартылай өткізгіш компания ұсынды. PhysX PPU-дан пайдаланғысы келетін ойындар AGEIA-ның PhysX SDK-сын (бұрын NovodeX SDK деп аталған) пайдалануы керек. Ол жергілікті банктік жадта жұмыс істейтін SIMD үзілмелі нүктелі VLIW процессорларының массивін басқаратын жалпы мақсаттағы RISC ядросынан тұрады, ал олардың арасындағы дерек алмасуды басқару үшін коммутациялық желі қолданылады. CPU немесе GPU сияқты кэш иерархиясы жоқ. PhysX бейнекарталардың өндірісіне ұқсас үш компания арқылы қолжетімді болды. ASUS, BFG Technologies және ELSA Technologies негізгі өндірушілер болды. Карталары орнатылған компьютерлер Alienware, Dell және Falcon Northwest сияқты жүйе құрастырушылардан қолжетімді болды. 2008 жылдың ақпан айында Nvidia Ageia Technologies компаниясын сатып алғаннан кейін, PhysX-ті AGEIA PPU және NVIDIA GPU-да белсенді ATi/AMD GPU-лары бар жүйелерде өңдеу мүмкіндігін тоқтатты, соның салдарынан PhysX толығымен Nvidia-ға көшті. Бірақ 2008 жылдың наурызында Nvidia PhysX-ті барлығына ашық стандартқа айналдыратынын жариялады, сондықтан негізгі графикалық процессор өндірушілері келесі буын графикалық карталарында PhysX қолдауын қамтамасыз етеді. Nvidia PhysX кейбір жаңа драйверлерді жүктеу арқылы олардың шығарылған графикалық карталары үшін де қолжетімді болатынын мәлімдеді. Академиялық зерттеулерге қатысты PPU жобаларын талқылау үшін физикалық қозғалтқышты қараңыз.
Хавок FX
Havok SDK — PhysX SDK-ның басты бәсекелесі болып табылады, ол 150-ден астам ойында, соның ішінде Half Life 2, Halo 3 және Dead Rising сияқты танымал ойындарда қолданылады. PhysX PPU-мен бәсекелесу мақсатында Havok FX деп аталатын нұсқа ATI (AMD CrossFire) және NVIDIA (SLI) технологияларын қолданып, қолданыстағы бейнекарталарды пайдаланып физикалық есептеулерді жеделдетуге арналған болатын. Havok физикалық симуляцияны эффект физикасы және геймплей физикасы деп екіге бөледі, эффект физикасы (мүмкін болған жағдайда) GPU-ға Shader Model 3.0 нұсқаулары түрінде жүктеледі, ал геймплей физикасы CPU-да әдеттегідей өңделеді. Екеуінің арасындағы маңызды айырмашылық – эффект физикасы геймплейге әсер етпейді (мысалы, жарылыстан шаң немесе ұсақ сынықтар); физикалық операциялардың көп бөлігі әлі де бағдарламалық қамтамасызда орындалады. Бұл тәсіл PhysX SDK-дан едәуір өзгеше, ол барлық есептеулерді PhysX картасына жылдырады, егер ол болса. Havok компаниясы Intel компаниясымен сатып алынғаннан кейін Havok FX жобасы тоқтатылған немесе күшін жойған сияқты көрінеді.
PPU және GPU
GPGPU-ға ұмтылу GPU-ды PPU жұмысына сәйкес етті; DX10 бүтін сандық дерек түрлерін, біріктірілген көлеңке архитектурасын және геометриялық көлеңке сатысын қосты, бұл алгоритмдердің кең ауқымын жүзеге асыруға мүмкіндік береді; Қазіргі заманғы GPU-лар индекстелген кеңістікте орындалатын және графикалық ресурстарды қажет етпейтін, жалпы мақсаттағы дерек буферлерін ғана пайдаланатын есептеу көлеңкелерін қолдайды. NVidia CUDA желілер арасындағы байланыс және желілерге тікелей байланысты уақытша жұмыс кеңістігін ұсынады. Дегенмен, GPU-лар көптеген ұзақ күту уақыты бар, баяу желілерге, текстура және кадр буферлік дерек жолдарына, нашар тармақталу өнімділігіне негізделген; бұл оларды PPU және Cell-ден ойын әлемінің симуляциясын жүктеу үшін жақсырақ оңтайландырылмаған деп ажыратады. Codeplay Sieve компиляторы PPU-ды қолдайды, бұл Ageia physX чипі GPGPU түріндегі тапсырмаларға жарамды екенін көрсетеді. Алайда, Ageia компаниясы бұл нарыққа енуі екіталай.
PS2 VU0
PhysX-тен мүлдем өзгеше болғанымен, PlayStation 2-нің VU0-ы PPU-дың бастапқы, шектеулі нұсқасы деп санауға болады. Керісінше, PS2 бағдарламашысы үшін PPU-ны VU0-ның жетілдірілген, жаңа баламасы ретінде түсіндіруге болады. Оның мүмкіндіктері мен жүйедегі орналасуы физика мен жасанды интеллектті қоса алғанда, ойынды жаңарту міндеттерін жылдамдатуға арналған; ол CPU басқа операциялармен айналысып жатқанда, өз нұсқаулар тізбегі бойынша осындай есептеулерді жүктеуге шамасы жетеді. Бірақ DSP болғандықтан, ол ойын қозғалтқышында пайдалы жұмыс істеу үшін CPU-ға көп тәуелді және толыққанды физика API-ін іске асыра алмайды, сондықтан оны PPU деп санауға болмайды. Сонымен қатар, VU0 қосымша vertex өңдеу қуатын ұсынуға қабілетті, бірақ бұл мүмкіндік бірліктің өзіне емес, жүйедегі байланыстарға байланысты. Бұл қолданылу Havok FX немесе GPU физикасына ұқсас, себебі қосымша құрылғының жалпы мақсаттағы қалқыма нүктелік қуаты графикалық немесе физикалық міндеттерде CPU-ны күшейту үшін пайдаланылады.