Jeden z nejvíce skryté funkce, v nedávné aktualizaci Windows 10, je možnost zkontrolovat, které aplikace používají vaši grafickou procesorovou jednotku (GPU). Pokud jste někdy otevřeli Správce úloh, pravděpodobně jste se podívali na využití procesoru, abyste zjistili, které aplikace jsou nejnáročnější na procesor. Nejnovější aktualizace přidaly podobnou funkci, ale pro GPU GPU. To vám pomůže pochopit, jak intenzivní jste software a hry na vašem GPU bez stahování softwaru třetích stran. Existuje další zajímavá funkce, která pomáhá přenést váš CPU na GPU. Doporučuji přečíst, jak si vybrat.

Proč nemám GPU ve Správci úloh?

Bohužel ne všechny grafické karty budou schopny poskytnout Windows statistiky, které potřebuje ke čtení GPU. Pro jistotu můžete tuto technologii rychle otestovat pomocí diagnostického nástroje DirectX.

  1. Klikněte na " Start“ a do vyhledávání napište dxdiag spustit Diagnostický nástroj DirectX.
  2. Přejít na kartu " Obrazovka", přímo ve sloupci Řidiči"měl bys mít model WDDM verze vyšší než 2.0 pro použití grafů GPU ve správci úloh.

Povolte graf GPU ve Správci úloh

Chcete-li zobrazit využití GPU pro jednotlivé aplikace, musíte otevřít Správce úloh.

  • Stiskněte kombinaci tlačítek Ctrl + Shift + Esc otevřete Správce úloh.
  • Klikněte klikněte pravým tlačítkem myši klikněte ve správci úloh na prázdné pole " Název" a zkontrolujte z rozbalovací nabídky GPU. Můžete také poznamenat GPU jádro abyste viděli, které programy jej používají.
  • Nyní ve správci úloh jsou vpravo vidět graf GPU a jádro GPU.


Zobrazit celkový výkon GPU

Můžete sledovat celkové využití GPU pro sledování a analýzu při velkém zatížení. V tomto případě můžete vidět vše, co potřebujete v " Výkon“ výběrem grafický procesor.


Každý prvek GPU je rozdělen do jednotlivých grafů, abyste získali ještě lepší přehled o tom, jak je vaše GPU využíváno. Pokud chcete změnit zobrazené grafy, můžete kliknout na malou šipku vedle názvu každého úkolu. Tato obrazovka také zobrazuje verzi a datum vašeho ovladače, což je dobrá alternativa k použití DXDiag nebo Správce zařízení.


Vývojář by se měl naučit efektivně využívat grafický procesor (GPU) zařízení, aby se aplikace nezpomalovala a neodváděla zbytečnou práci.

Přizpůsobte nastavení vykreslování GPU

Pokud je vaše aplikace pomalá, pak aktualizace některých nebo všech snímků obnovení obrazovky trvá déle než 16 milisekund. Chcete-li vizuálně vidět aktualizace snímků na obrazovce, můžete na zařízení povolit speciální možnost (Vykreslování profilu GPU).

Rychle uvidíte, jak dlouho trvá vykreslení snímků. Dovolte mi, abych vám připomněl, že musíte dodržet 16 milisekund.

Tato možnost je dostupná na zařízeních začínajících na Androidu 4.1. Na zařízení musí být povolen režim vývojáře. Na zařízeních s verzí 4.2 a vyšší je režim ve výchozím nastavení skrytý. Pro aktivaci přejděte na Nastavení | O telefonu a sedmkrát klikněte na řádek Číslo sestavení.

Po aktivaci přejděte na Vývojářské možnosti a najít pointu Přizpůsobte nastavení vykreslování GPU(Vykreslování profilu GPU), které by mělo být povoleno. Ve vyskakovacím okně vyberte možnost Na obrazovce ve sloupcích(Na obrazovce jako pruhy). V tomto případě se graf zobrazí nad spuštěnou aplikací.

Testovat můžete nejen svou aplikaci, ale i ostatní. Spusťte libovolnou aplikaci a začněte s ní pracovat. Během práce uvidíte aktualizovaný graf ve spodní části obrazovky. Vodorovná osa představuje uplynulý čas. Svislá osa ukazuje čas pro každý snímek v milisekundách. Při interakci s aplikací se na obrazovce kreslí svislé pruhy, které se objevují zleva doprava a zobrazují výkon snímku v průběhu času. Každý takový sloupec představuje jeden snímek pro vykreslení obrazovky. Čím vyšší je výška lišty, tím více času zabere vykreslení. Tenká zelená čára je vodicí a odpovídá 16 milisekundám na snímek. Proto se musíte snažit zajistit, aby při studiu vaší aplikace graf nevybočil z této linie.

Zvažte zvětšenou verzi grafu.

Zelená čára je zodpovědná za 16 milisekund. Chcete-li dodržet rychlost 60 snímků za sekundu, musí být každý sloupec grafu nakreslen pod touto čarou. V určitém okamžiku bude pruh příliš velký a bude mnohem vyšší než zelená čára. To znamená, že program je zastaven. Každý pruh má modré, fialové (Lollipop a výše), červené a oranžové barvy.

Modrá barva je zodpovědná za čas potřebný k vytvoření a aktualizaci Pohled.

Fialová část představuje čas potřebný k přenosu prostředků vykreslování streamu.

Červená barva představuje dobu vykreslení.

Oranžová barva ukazuje, jak dlouho procesoru trvalo, než GPU dokončí svou práci. Je zdrojem problémů u velkých hodnot.

Pro snížení zátěže GPU existují speciální techniky.

Ladit překreslení GPU

Další nastavení vám dává vědět, jak často se stejná oblast obrazovky překresluje (tj. je vykonána práce navíc). Opět jdeme do Vývojářské možnosti a najít pointu Ladit překreslení GPU(Debug GPU Overdraw), které by mělo být povoleno. Ve vyskakovacím okně vyberte možnost Zobrazit překrývající se zóny(Zobrazit oblasti překreslení). Nebojte se! Některé položky na obrazovce změní barvu.

Vraťte se k libovolné aplikaci a sledujte, jak funguje. Barva vám prozradí problémové oblasti vaší aplikace.

Pokud se barva v aplikaci nezměnila, pak je vše v pořádku. Žádné překrývání jedné barvy na druhé.

Modrá barva znamená, že se kreslí jedna vrstva přes spodní vrstvu. Dobrý.

Zelená barva – překreslí se dvakrát. Musíme myslet na optimalizaci.

Růžová barva - třikrát překreslená. Všechno je velmi špatné.

Červená barva - mnohokrát překreslí. Něco se pokazilo.

Svou aplikaci můžete nezávisle otestovat, abyste našli problémové oblasti. Vytvořte aktivitu a umístěte na ni komponentu zobrazení textu. Dejte kořenovému prvku a textovému štítku nějaké pozadí v atributu android:pozadí. Skončíte s následujícím: nejprve jste spodní vrstvu aktivity natřeli jednou barvou. Poté se na ni nakreslí nová vrstva zobrazení textu. Mimochodem, vlastně zobrazení textu kreslí se i text.

V určitém okamžiku se vnucování barev nelze vyhnout. Představte si ale, že stejným způsobem nastavíte pozadí seznamu zobrazení seznamu, která zabírá celou oblast činnosti. Systém odvede dvojitou práci, ačkoli uživatel nikdy neuvidí spodní vrstvu aktivity. A pokud si navíc pro každý prvek seznamu vytvoříte vlastní označení s vlastním pozadím, skončíte u hledání.

Malá rada. Umístěte po metodě setContentView() volání metody, která odstraní překreslení obrazovky barvou motivu. To pomůže odstranit jedno překrytí barvy navíc:

GetWindow().setBackgroundDrawable(null);

Dnes se o tom obzvláště aktivně diskutuje a mnoho uživatelů se zajímá o to, kde začít těžit coiny a jak se to všechno děje. Popularita tohoto odvětví již měla hmatatelný dopad na trh s GPU a mnozí si již dlouho nespojovali výkonnou grafickou kartu s náročnými hrami, ale s kryptofarmami. V tomto článku si povíme, jak celý tento proces zorganizovat od nuly a začít těžit na vlastní farmě, co k tomu použít a proč je to nemožné.

Co je těžba na grafické kartě

Těžba na grafické kartě je proces těžby kryptoměny pomocí grafických procesorových jednotek (GPU). Chcete-li to provést, použijte výkonnou grafickou kartu domácí počítač nebo speciálně sestavená farma několika zařízení v jednom systému. Pokud se ptáte, proč se pro tento proces používají GPU, pak je odpověď celkem jednoduchá. Jde o to, že grafické karty jsou původně navrženy tak, aby zpracovávaly velké množství dat prováděním stejného typu operací, jako je tomu u zpracování videa. Stejný obrázek je pozorován u těžby kryptoměn, protože zde je proces hashování stejně stejný.

Pro těžbu se používají plnohodnotné diskrétní grafické karty. Notebooky ani čipy integrované do procesoru se nepoužívají. V síti jsou také články o těžbě na externí grafické kartě, ale to také nefunguje ve všech případech a není to nejlepší řešení.

Jaké grafické karty jsou vhodné pro těžbu

Pokud jde o výběr grafické karty, zde je běžnou praxí nákup AMD rx 470, rx 480, rx 570, rx 580 nebo Nvidia 1060, 1070, 1080 ti. Grafické karty jako r9 280x, r9 290, 1050, 1060 jsou také vhodné, ale nepřinesou velké zisky Těžba na slabé grafické kartě jako geforce gtx 460, gts 450, gtx 550ti rozhodně zisk nepřinese. Pokud mluvíme o paměti, pak je lepší vzít od 2 GB. Ani 1 GB nemusí stačit, o 512 MB nemluvě. Pokud mluvíme o těžbě na profesionální grafické kartě, pak přináší totéž jako běžné nebo ještě méně. Vzhledem k nákladům na takové VC je to nerentabilní, ale můžete s jejich pomocí těžit, pokud je již máte.

Za zmínku také stojí, že všechny grafické karty mohou zvýšit výkon odemknutím hodnot, které nastavil výrobce. Tento proces se nazývá přetaktování. To však není bezpečné, vede to ke ztrátě záruky a karta může selhat, například začít vykazovat artefakty. Grafické karty můžete přetaktovat, ale musíte se seznámit s materiály na toto téma a postupovat opatrně. Neměli byste se snažit okamžitě nastavit všechny hodnoty na maximum, ale je ještě lepší najít příklady úspěšného nastavení přetaktování vaší grafické karty na internetu.

Nejoblíbenější grafické karty pro těžbu 2020

Níže je srovnání grafických karet. Tabulka obsahuje nejoblíbenější zařízení a jejich maximální spotřebu energie. Musím říci, že tato čísla se mohou lišit v závislosti na konkrétním modelu grafické karty, jejím výrobci, použité paměti a některých dalších charakteristikách. Nemá smysl psát o zastaralých ukazatelích, jako je těžba litecoinů na grafické kartě, takže se berou v úvahu pouze tři nejoblíbenější algoritmy pro farmy na grafických kartách.

grafická karta Ethash Equihash CryptoNight Spotřeba energie
AMD Radeon R9 280x 11 MHz/s 290 H/s 490 H/s 230W
AMD Radeon RX 470 26 MHz/s 260 H/s 660 H/s 120W
AMD Radeon RX 480 29,5 MH/s 290 H/s 730 H/s 135W
AMD Radeon RX 570 27,9 MH/s 260 H/s 700 H/s 120W
AMD Radeon RX 580 30,2 MH/s 290 H/s 690 H/s 135W
Nvidia GeForce GTX 750TI 0,5 MH/s 75 H/s 250 H/s 55W
Nvidia GeForce GTX 1050TI 13,9 MH/s 180 H/s 300 H/s 75W
Nvidia GeForce GTX 1060 22,5 MH/s 270 H/s 430 H/s 90W
Nvidia GeForce GTX 1070 30 MHz/s 430 H/s 630 H/s 120W
Nvidia GeForce GTX 1070TI 30,5 MH/s 470 H/s 630 H/s 135W
Nvidia GeForce GTX 1080 23,3 MHz/s 550 H/s 580 H/s 140W
Nvidia GeForce GTX 1080TI 35 MHz/s 685 H/s 830 H/s 190W

Je možné těžit na jedné grafické kartě?

Pokud nemáte touhu budovat plnohodnotnou farmu z mnoha GPU, nebo si jen chcete tento proces vyzkoušet na svém domácím počítači, můžete těžit s jednou grafickou kartou. Nejsou zde žádné rozdíly a obecně není důležitý počet zařízení v systému. Navíc můžete instalovat zařízení s různými čipy nebo dokonce z různých výrobců. Stačí paralelně spouštět dva programy pro čipy různé společnosti. Ještě jednou si připomeňme, že těžba na integrované grafické kartě se neprovádí.

Jaké kryptoměny lze těžit na grafických kartách

Na GPU můžete těžit jakoukoli kryptoměnu, ale je třeba chápat, že výkon na různých se bude na stejné kartě lišit. Starší algoritmy jsou již špatně vhodné pro video procesory a nepřinesou žádný zisk. Děje se tak kvůli tomu, že se na trhu objevují nová zařízení - tzv. Jsou mnohem produktivnější a výrazně zvyšují složitost sítě, ale jejich cena je vysoká a pohybuje se v tisících dolarů. Těžba coinů za SHA-256 (Bitcoin) nebo Scrypt (Litecoin, Dogecoin) doma je proto v roce 2018 špatný nápad.

Kromě LTC a DOGE znemožnily ASIC těžbu bitcoinů (BTC), Dash a dalších měn. Kde Nejlepší volba kryptoměny, které používají algoritmy chráněné ASIC, se stanou. Takže například pomocí GPU bude možné těžit coiny pomocí algoritmů CryptoNight (Karbovanets, Monero, Electroneum, Bytecoin), Equihash (ZCash, Hush, Bitcoin Gold) a Ethash (Ethereum, Ethereum Classic). Seznam není zdaleka úplný a neustále se objevují nové projekty založené na těchto algoritmech. Mezi nimi jsou jak vidličky populárnějších mincí, tak i zcela nový vývoj. Občas se dokonce objeví nové algoritmy, které jsou navrženy tak, aby řešily určité problémy a mohou využívat různá zařízení. Níže budeme hovořit o tom, jak zjistit hashrate grafické karty.

Co potřebujete pro těžbu na grafické kartě

Níže je seznam toho, co budete k vytvoření farmy potřebovat:

  • Samotné grafické karty. Výběr konkrétní modely závisí na vašem rozpočtu nebo na tom, co je již k dispozici. Stará zařízení na AGP samozřejmě nebudou fungovat, ale můžete použít jakoukoli kartu střední nebo nejvyšší třídy posledních let. Výše se můžete vrátit k tabulce výkonu grafické karty, která vám umožní provést vhodnou volbu.
  • počítač k jejich instalaci. Není nutné používat špičkový hardware a dělat farmu založenou na vysoce výkonných komponentech. Bude stačit nějaký starý AMD Athlon, pár gigabajtů RAM a pevný disk k instalaci operačního systému a potřebných programů. Také důležité základní deska. Mělo by to stačit pro vaši farmu. PCI sloty. Existovat speciální verze pro těžaře, které obsahují 6-8 slotů a v určitých případech je výhodnější je používat než sbírat několik PC. Zvláštní pozornost by měla být věnována pouze napájení, protože systém bude pracovat pod vysokým zatížením nepřetržitě. Je nutné vzít PSU s výkonovou rezervou a je žádoucí mít certifikáty 80 Plus. Je také možné spojit dva bloky do jednoho pomocí speciálních adaptérů, ale toto řešení vyvolává na internetu kontroverze. Je lepší pouzdro vůbec nepoužívat. Pro lepší chlazení doporučuje se vyrobit nebo zakoupit speciální stojan. Grafické karty se v tomto případě vyjímají pomocí speciálních adaptérů nazývaných risery. Koupíte je ve specializovaných prodejnách nebo na aliexpressu.
  • Dobře větraný suchý prostor. Stojí za to umístit farmu do nebytové místnosti a ještě lépe do samostatné místnosti. Tím se zbavíte nepohodlí, ke kterému dochází v důsledku hlučného provozu chladicích a tepelných systémů. Pokud to není možné, měli byste zvolit grafické karty s nejtišším možným chladicím systémem. Více se o něm dozvíte z recenzí na internetu, například na YouTube. Měli byste také myslet na cirkulaci vzduchu a větrání, abyste udrželi teploty co možná nejníže.
  • Hornický program. Těžba GPU probíhá pomocí speciálního, který lze najít na internetu. Pro výrobce ATI Radeon a Nvidia používá jiný software. Totéž platí pro různé algoritmy.
  • Servis zařízení. To je velmi důležitý bod, protože ne každý chápe, že důlní farma vyžaduje neustálou péči. Uživatel potřebuje sledovat teplotu, měnit teplovodivou pastu a čistit CO od prachu. Měli byste také pamatovat na bezpečnostní opatření a pravidelně kontrolovat stav systému.

Jak nastavit těžbu na grafické kartě od začátku

V tato sekce zvážíme celý proces těžby od výběru měny až po výběr finančních prostředků. Je třeba poznamenat, že celý tento proces se může mírně lišit pro různé fondy, programy a čipy.

Jak vybrat grafickou kartu pro těžbu

Doporučujeme seznámit se s výše uvedenou tabulkou a s částí o výpočtu potenciálního výdělku. To vám umožní vypočítat přibližný příjem a rozhodnout se, který hardware si můžete dovolit více, a také se vypořádat s dobou návratnosti investic. Nezapomeňte na kompatibilitu napájecích konektorů grafické karty a napájecího zdroje. Pokud se používají jiné, je třeba předem získat vhodné adaptéry. To vše se dá snadno koupit v čínských internetových obchodech za babku nebo u místních prodejců s nějakým příplatkem.

Výběr kryptoměny

Nyní je důležité se rozhodnout, o který coin máte zájem a jakých cílů chcete dosáhnout. Pokud vás zajímají výdělky v reálném čase, měli byste si vybrat měny s nejvyšším ziskem tento moment a prodat je ihned po obdržení. Můžete také těžit nejoblíbenější mince a držet je, dokud cena nevystřelí. Existuje i jakýsi strategický přístup, kdy si vyberete podle vás málo známou, ale perspektivní měnu a vložíte do ní sílu v naději, že se hodnota v budoucnu výrazně zvýší.

Výběr těžebního fondu

Mají také určité rozdíly. Některé z nich vyžadují registraci, zatímco jiné potřebují pouze adresu vaší peněženky, abyste mohli začít. První z nich obvykle ukládají finanční prostředky, které vyděláte, dokud nedosáhnete minimální výplatní částky nebo v očekávání vašeho výběru v manuálním režimu. Dobrým příkladem takového fondu je Suprnova.cc. Nabízí spoustu kryptoměn a pro práci v každém z poolů se stačí na stránce zaregistrovat pouze jednou. Služba se snadno nastavuje a je vhodná pro začátečníky.

Podobný zjednodušený systém nabízí web Minergate. No, pokud se nechcete registrovat na nějaké stránce a ukládat tam vydělané prostředky, pak byste si měli vybrat nějaký pool v oficiálním tématu coinu, který vás zajímá, na fóru BitcoinTalk. Jednoduché fondy vyžadují pouze zadání adresy pro načítání krypt a v budoucnu můžete pomocí adresy zjistit statistiky těžby.

Vytvořte si kryptoměnovou peněženku

Tuto položku nepotřebujete, pokud používáte fond, který vyžaduje registraci a má vestavěnou peněženku. Pokud chcete dostávat platby automaticky do peněženky, zkuste si o vytvoření peněženky přečíst v článku o odpovídající minci. Tento proces se mohou u různých projektů výrazně lišit.

Můžete také pouze nasměrovat adresu své peněženky na jednu z burz, ale je třeba poznamenat, že ne všechny platformy směnáren přijímají transakce z fondů. Nejlepší možností by bylo vytvořit peněženku přímo na vašem počítači, ale pokud pracujete s velkým množstvím měn, bude ukládání všech blockchainů nepohodlné. V takovém případě byste se měli poohlédnout po spolehlivých online peněženkách nebo odlehčených verzích, které nevyžadují stahování celého block chainu.

Výběr a instalace těžebního programu

Volba programu pro těžbu krypty závisí na zvolené minci a jejím algoritmu. Pravděpodobně všichni vývojáři takového softwaru mají témata na BitcoinTalks, kde najdete odkazy ke stažení a informace o tom, jak probíhá nastavení a spuštění. Téměř všechny tyto programy mají verze pro Windows i Linux. Většina těchto těžařů je zdarma, ale určité procento času využívají k připojení k fondu vývojářů. Jedná se o určitý druh provize za používání softwaru. V některých případech může být deaktivován, ale to vede k omezené funkčnosti.

Nastavení programu spočívá v tom, že zadáte těžební fond, adresu peněženky nebo přihlašovací jméno, heslo (pokud existuje) a další možnosti. Doporučuje se například nastavit maximální teplotní limit, při jehož dosažení se farma vypne, aby nedošlo k poškození grafických karet. Nastavitelná rychlost chladicího ventilátoru a další doladění které pravděpodobně nebudou používat začátečníci.

Pokud nevíte, který software si vybrat, podívejte se na náš materiál o tomto nebo si přečtěte pokyny na webu bazénu. Obvykle je vždy sekce, která je věnována zahájení. Obsahuje seznam programů, které lze použít, a konfigurací .netopýr soubory. S ním můžete rychle zjistit nastavení a začít těžit na samostatné grafické kartě. Okamžitě můžete vytvořit dávkové soubory pro všechny měny, se kterými chcete pracovat, takže později by bylo pohodlnější mezi nimi přepínat.

Začínáme těžit a sledujeme statistiky

Po spuštění .netopýr soubor s nastavením, zobrazí se vám okno konzoly, kde se zobrazí protokol toho, co se děje. Lze jej také nalézt ve složce se spustitelným souborem. V konzoli vidíte aktuální hashrate a teplotu karty. Klávesové zkratky obvykle umožňují vyvolat aktuální data.

Budete také moci vidět, zda zařízení nenajde hashe. V tomto případě se zobrazí varování. K tomu dochází, když je něco nakonfigurováno nesprávně, je vybrán nesprávný software pro minci nebo GPU nefunguje správně. Mnoho horníků také používá finanční prostředky k vzdálený přístup k PC, aby mohl sledovat provoz farmy, když nejsou tam, kde je nainstalován.

Stahujeme kryptoměnu

Pokud používáte pooly jako Suprnova, pak se všechny prostředky jednoduše akumulují na vašem účtu a můžete je kdykoli vybrat. Zbývající fondy nejčastěji využívají systém, kdy jsou prostředky automaticky připsány do určené peněženky po obdržení minimální částky výběru. Kolik jste vydělali, se obvykle dozvíte na stránkách bazénu. Stačí zadat adresu vaší peněženky nebo se přihlásit ke svému osobnímu účtu.

Kolik si můžete vydělat?

Částka, kterou můžete vydělat, závisí na situaci na trhu a samozřejmě na celkovém hashratu vaší farmy. Důležité také je, jakou strategii zvolíte. Není nutné prodávat vše vytěžené najednou. Můžete si například počkat na skok v kurzu vytěžené mince a získat mnohonásobně větší zisk. Vše však není tak jasné a předpovídat další vývoj událostí je prostě nereálné.

Návratnost grafických karet

Pro výpočet návratnosti pomůže speciální online kalkulačka. Na internetu je jich mnoho, ale jako příklad zvážíme tento proces pomocí služby WhatToMine. Umožňuje vám získat aktuální data o zisku na základě dat vaší farmy. Stačí si vybrat grafické karty, které máte k dispozici, a poté přičíst náklady na elektřinu ve vaší oblasti. Stránka spočítá, kolik můžete vydělat za den.

Je třeba si uvědomit, že se bere v úvahu pouze aktuální stav věcí na trhu a situace se může kdykoli změnit. Sazba může klesat nebo stoupat, obtížnost těžby se změní nebo se objeví nové projekty. Takže například výroba éteru se může zastavit kvůli možnému přechodu sítě na . Pokud se těžba Etherea zastaví, pak farmy budou muset někam poslat volnou energii, například na těžbu ZCash na GPU, což ovlivní kurz tohoto coinu. Na trhu existuje mnoho podobných scénářů a je důležité si uvědomit, že dnešní obraz nemusí být zachován po celou dobu návratnosti zařízení.

Jednou jsem měl možnost mluvit na počítačovém trhu s technickým ředitelem jedné z mnoha společností prodávajících notebooky. Tento „specialista“ se snažil vypěnit, aby mi přesně vysvětlil, jakou konfiguraci notebooku potřebuji. Hlavním poselstvím jeho monologu bylo, že doba centrálních procesorových jednotek (CPU) skončila a nyní všechny aplikace aktivně využívají výpočty na grafickém procesoru (GPU), a proto je výkon notebooku zcela závislý na grafice. procesoru a nemůžete věnovat pozornost CPU. Uvědomil jsem si, že dohadovat se a dohadovat se s tímto technickým ředitelem je naprosto zbytečné, neztrácel jsem čas zbytečně a koupil jsem si potřebný notebook v jiném pavilonu. Zarazila mě však samotná skutečnost takové nehorázné neschopnosti prodejce. Bylo by pochopitelné, kdyby se mě jako kupujícího snažil oklamat. Vůbec ne. Upřímně věřil tomu, co řekl. Ano, marketéři z NVIDIA a AMD zřejmě nejedí svůj chléb nadarmo a přesto dokázali některé uživatele nadchnout myšlenkou dominantní role grafického procesoru v moderním počítači.

Skutečnost, že se dnes výpočetní jednotka grafického procesoru (GPU) stává stále populárnější, je nepochybná. To však nesnižuje roli centrálního procesoru. Navíc pokud se budeme bavit o drtivé většině uživatelských aplikací, tak dnes jejich výkon zcela závisí na výkonu CPU. To znamená, že naprostá většina uživatelských aplikací nepoužívá GPU computing.

Obecně platí, že výpočty GPU se většinou provádějí na specializovaných systémech HPC pro vědecké výpočty. Ale uživatelské aplikace, které využívají GPU computing, se dají spočítat na prstech. Zároveň je třeba hned poznamenat, že výraz „výpočet na GPU“ v tomto případě není zcela správný a může být zavádějící. Faktem je, že pokud aplikace používá GPU computing, vůbec to neznamená, že je centrální procesor nečinný. Počítání na GPU nezahrnuje přesun zátěže z CPU na GPU. Centrální procesor zůstává zpravidla zaneprázdněn a použití grafického procesoru spolu s centrálním procesorem umožňuje zvýšit výkon, to znamená zkrátit dobu potřebnou k dokončení úkolu. Samotné GPU zde navíc funguje jako jakýsi koprocesor pro CPU, ale v žádném případě jej zcela nenahrazuje.

Abychom pochopili, proč výpočetní technika GPU není takový všelék a proč je nesprávné říkat, že jejich výpočetní schopnosti jsou lepší než schopnosti CPU, je nutné pochopit rozdíl mezi centrálním procesorem a grafickým procesorem.

Rozdíly v architektuře GPU a CPU

Jádra CPU jsou navržena tak, aby spouštěla ​​jeden proud sekvenčních instrukcí s maximálním výkonem, zatímco GPU je navržena tak, aby spouštěla ​​velmi rychle. velký počet paralelní vlákna instrukcí. To je zásadní rozdíl mezi grafickými procesory a centrálními. CPU je univerzální nebo univerzální procesor optimalizovaný pro vysoký výkon jednoho toku, který zpracovává jak celá čísla, tak čísla s pohyblivou řádovou čárkou. V tomto případě dochází k přístupu do paměti s daty a instrukcemi převážně náhodně.

Pro zlepšení výkonu CPU jsou navrženy tak, aby spouštěly co nejvíce instrukcí paralelně. Například za tímto účelem procesorová jádra používají blok provádění instrukcí mimo pořadí, který vám umožňuje změnit pořadí instrukcí mimo pořadí, ve kterém byly přijaty, což vám umožňuje zvýšit úroveň paralelismu při implementaci instrukcí. na úrovni jednoho vlákna. Přesto to stále neumožňuje paralelní provádění velkého množství instrukcí a režie pro paralelizaci instrukcí uvnitř jádra procesoru se ukazuje jako velmi významná. To je důvod, proč procesory pro všeobecné použití nemají příliš velký počet prováděcích jednotek.

GPU je navrženo zásadně jinak. Původně byl navržen tak, aby fungoval obrovské množství paralelní proudy příkazů. Navíc jsou tyto toky příkazů zpočátku paralelizovány a na paralelizaci instrukcí v GPU prostě neexistuje žádná režie. GPU je navrženo tak, aby vykreslovalo obraz. Zjednodušeně řečeno, na vstupu vezme skupinu polygonů, provede všechny potřebné operace a na výstupu vydá pixely. Zpracování polygonů a pixelů je nezávislé, lze je zpracovávat paralelně, odděleně od sebe. GPU proto vzhledem k neodmyslitelně paralelní organizaci práce využívá velké množství prováděcích jednotek, které se snadno načítají, na rozdíl od sekvenčního toku instrukcí pro CPU.

GPU a CPU se také liší v tom, jak přistupují k paměti. V GPU je přístup do paměti snadno předvídatelný: pokud je texturový texel načten z paměti, pak po chvíli přijde čas i pro sousední texely. Při zápisu se děje to samé: pokud je pixel zapsán do framebufferu, po několika cyklech se zapíše pixel umístěný vedle něj. GPU proto na rozdíl od CPU prostě nepotřebuje velkou cache a textury vyžadují jen pár kilobajtů. Rozdílný je i princip práce s pamětí v GPU a CPU. Takže všechny moderní GPU mají několik řadičů paměti a samotná grafická paměť je rychlejší, takže GPU mají mnohem více o větší šířka pásma paměti ve srovnání s univerzálními procesory, což je také velmi důležité pro paralelní výpočty, které pracují s obrovskými datovými toky.

U univerzálních procesorů b o Většinu oblasti matrice zabírají různé vyrovnávací paměti příkazů a dat, dekódovací bloky, bloky predikce větvení hardwaru, bloky pro změnu pořadí příkazů a vyrovnávací paměť první, druhé a třetí úrovně. Všechny tyto hardwarové bloky jsou potřebné k urychlení provádění několika toků instrukcí jejich paralelizací na úrovni jádra procesoru.

Samotné prováděcí jednotky zabírají v univerzálním procesoru relativně málo místa.

V GPU je naopak hlavní oblast obsazena četnými prováděcími jednotkami, což mu umožňuje současně zpracovávat několik tisíc příkazových toků.

Můžeme říci, že na rozdíl od moderních CPU jsou GPU navrženy pro paralelní výpočty s velkým počtem aritmetických operací.

Výpočetní výkon GPU je možné využít pro negrafické úlohy, ale pouze v případě, že řešený problém umožňuje paralelizaci algoritmů do stovek prováděcích jednotek dostupných v GPU. Zejména výpočty GPU vykazují vynikající výsledky při stejné sekvenci matematické operace aplikované na velké množství dat. V tomto případě se nejlepších výsledků dosáhne, pokud je poměr počtu aritmetických instrukcí k počtu přístupů do paměti dostatečně velký. Tato operace klade menší nároky na kontrolu provádění a nevyžaduje velkou mezipaměť.

Existuje mnoho příkladů vědeckých výpočtů, kde je výhoda GPU oproti CPU z hlediska výpočetní efektivity nepopiratelná. Takže mnoho vědeckých aplikací v oblasti molekulárního modelování, dynamiky plynů, dynamiky tekutin a dalších věcí je dokonale přizpůsobeno pro výpočty GPU.

Takže, pokud lze algoritmus pro řešení problému paralelizovat do tisíců samostatných vláken, pak může být efektivita řešení takového problému pomocí GPU vyšší než jeho řešení pouze pomocí univerzálního procesoru. Převzít a přenést řešení nějaké úlohy z CPU na GPU však není tak snadné, už jen proto, že CPU a GPU používají různé příkazy. To znamená, že když je program napsán pro řešení na CPU, použije se instrukční sada x86 (nebo instrukční sada kompatibilní s konkrétní architekturou procesoru), ale pro GPU se používají zcela jiné instrukční sady, které opět berou v úvahu zohlednit jeho architekturu a možnosti. Moderní vývoj 3D her využívá rozhraní API DirectX a OrenGL, která umožňují programátorům pracovat s shadery a texturami. Použití rozhraní DirectX a OrenGL API pro negrafické výpočty na GPU však není tou nejlepší volbou.

Aplikace NVIDIA CUDA a AMD

Proto, když se začaly objevovat první pokusy o implementaci negrafických výpočtů na GPU (General Purpose GPU, GPGPU), vznikl překladač BrookGPU. Před jejím vytvořením museli vývojáři přistupovat k prostředkům grafické karty prostřednictvím grafických API OpenGL nebo Direct3D, což značně komplikovalo proces programování, protože vyžadovalo specifické znalosti – museli se naučit principy práce s 3D objekty (shadery, textury atd.). ). To byl důvod velmi omezeného použití GPGPU v softwarových produktech. BrookGPU se stal jakýmsi „překladačem“. Tato streamovací rozšíření do jazyka C skrývala před programátory 3D API a při jeho používání prakticky zmizela potřeba znalosti 3D programování. Výpočetní výkon grafických karet se stal dostupným programátorům v podobě přídavného koprocesoru pro paralelní výpočty. Kompilátor BrookGPU zpracoval soubor s kódem C a rozšířeními, stavební kód propojený s knihovnou s podporou DirectX nebo OpenGL.

Především díky BrookGPU obrátily NVIDIA a ATI (nyní AMD) svou pozornost na vznikající univerzální výpočetní technologii na GPU a začaly vyvíjet vlastní implementace, které poskytují přímý a transparentnější přístup k výpočetním jednotkám 3D akcelerátoru.

V důsledku toho NVIDIA vyvinula architekturu paralelních počítačů CUDA (Compute Unified Device Architecture). Architektura CUDA umožňuje implementaci negrafických výpočtů na GPU NVIDIA.

Veřejná beta verze CUDA SDK byla vydána v únoru 2007. CUDA API je založeno na zjednodušeném dialektu jazyka C. Architektura CUDA SDK umožňuje programátorům implementovat algoritmy, které běží na GPU NVIDIA a zahrnují speciální funkce v programovém kódu C. Pro úspěšný překlad kódu do tohoto jazyka obsahuje CUDA SDK vlastní kompilátor příkazového řádku nvcc společnosti NVIDIA.

CUDA je pro tyto účely multiplatformní software operační systémy jako Linux, Mac OS X a Windows.

AMD (ATI) také vyvinula svou vlastní verzi technologie GPGPU, dříve nazývanou ATI Stream a nyní AMD Accelerated Parallel Processing (APP). AMD APP je založena na otevřeném průmyslovém standardu OpenCL (Open Computing Language). Standard OpenCL poskytuje paralelismus na úrovni instrukcí a na úrovni dat a je implementací techniky GPGPU. Jedná se o zcela otevřený standard a jeho použití je bezplatné. Pamatujte, že AMD APP a NVIDIA CUDA nejsou vzájemně kompatibilní, Nejnovější verze NVIDIA CUDA také podporuje OpenCL.

Testování GPGPU ve video konvertorech

Zjistili jsme tedy, že technologie CUDA je navržena tak, aby implementovala GPGPU na GPU NVIDIA a APP API na GPU AMD. Jak již bylo uvedeno, použití negrafických výpočtů na GPU je vhodné pouze tehdy, pokud lze řešený úkol paralelizovat do mnoha vláken. Většina uživatelských aplikací však toto kritérium nesplňuje. Existují však určité výjimky. Většina moderních video konvertorů například podporuje možnost používat výpočty na GPU NVIDIA a AMD.

Abychom zjistili, jak efektivně se GPU computing používá ve vlastních video konvertorech, vybrali jsme tři populární řešení: Xilisoft Video konvertor Ultimate 7.7.2, Wondershare Video Converter Ultimate 6.0.3.2 a Movavi Video Převodník 10.2.1. Tyto převodníky podporují použití grafických procesorů NVIDIA a AMD a tuto funkci můžete zakázat v nastavení převodníku videa, což umožňuje vyhodnotit efektivitu využití GPU.

Pro konverzi videa jsme použili tři různá videa.

První video mělo délku 3 minuty 35 sekund a velikost 1,05 GB. Byl zaznamenán ve formátu mkv datového úložiště (kontejneru) a měl následující vlastnosti:

  • video:
    • formát - MPEG4 Video (H264),
    • rozlišení - 1920*um*1080,
    • režim bitrate - proměnný,
    • průměrný datový tok videa - 42,1 Mbps,
    • maximální přenosová rychlost videa - 59,1 Mbps,
    • snímková frekvence - 25 fps;
  • Zvuk:
    • formát - MPEG-1 Audio,
    • přenosová rychlost zvuku - 128 Kbps,
    • počet kanálů - 2,

Druhé video mělo délku 4 minuty 25 sekund a velikost 1,98 GB. Byl zaznamenán ve formátu úložiště dat (kontejneru) MPG a měl následující vlastnosti:

  • video:
    • formát - MPEG-PS (MPEG2 Video),
    • rozlišení - 1920*um*1080,
    • režim bitrate - proměnný.
    • průměrný datový tok videa - 62,5 Mbps,
    • maximální přenosová rychlost videa - 100 Mbps,
    • snímková frekvence - 25 fps;
  • Zvuk:
    • formát - MPEG-1 Audio,
    • přenosová rychlost zvuku - 384 Kbps,
    • počet kanálů - 2,

Třetí video bylo 3 minuty 47 sekund dlouhé a 197 MB velké. Byl zaznamenán ve formátu datového úložiště (kontejneru) MOV a měl následující vlastnosti:

  • video:
    • formát - MPEG4 Video (H264),
    • rozlišení - 1920*um*1080,
    • režim bitrate - proměnný,
    • přenosová rychlost videa - 7024 Kbps,
    • snímková frekvence - 25 fps;
  • Zvuk:
    • formát - AAC,
    • přenosová rychlost zvuku - 256 Kbps,
    • počet kanálů - 2,
    • vzorkovací frekvence - 48 kHz.

Všechna tři testovací videa byla převedena pomocí video konvertorů do formátu úložiště dat MP4 (kodek H.264) pro prohlížení na tablet iPad 2. Rozlišení výstupního video souboru bylo 1280*um*720.

Všimněte si, že jsme nepoužili úplně stejné nastavení převodu ve všech třech převodnících. Proto je nesprávné porovnávat účinnost video konvertorů podle doby konverze. Například ve videokonvertoru Xilisoft Video Converter Ultimate 7.7.2 byla pro konverzi použita předvolba iPad 2 - H.264 HD Video. Tato předvolba používá následující nastavení kódování:

  • kodek - MPEG4 (H.264);
  • rozlišení - 1280*um*720;
  • snímková frekvence - 29,97 fps;
  • přenosová rychlost videa - 5210 Kbps;
  • audio kodek - AAC;
  • přenosová rychlost zvuku - 128 Kbps;
  • počet kanálů - 2;
  • vzorkovací frekvence - 48 kHz.

Wondershare Video Converter Ultimate 6.0.3.2 používal přednastavený iPad 2 s následujícími dalšími nastaveními:

  • kodek - MPEG4 (H.264);
  • rozlišení - 1280*um*720;
  • snímková frekvence - 30 fps;
  • přenosová rychlost videa - 5000 Kbps;
  • audio kodek - AAC;
  • přenosová rychlost zvuku - 128 Kbps;
  • počet kanálů - 2;
  • vzorkovací frekvence - 48 kHz.

Movavi Video Converter 10.2.1 používal předvolbu iPadu (1280*um*720, H.264) (*.mp4) s následujícími dalšími nastaveními:

  • video formát - H.264;
  • rozlišení - 1280*um*720;
  • snímková frekvence - 30 fps;
  • přenosová rychlost videa - 2500 Kbps;
  • audio kodek - AAC;
  • přenosová rychlost zvuku - 128 Kbps;
  • počet kanálů - 2;
  • vzorkovací frekvence - 44,1 kHz.

Konverze každého zdrojového videa byla provedena pětkrát na každém z video konvertorů s použitím jak GPU, tak pouze CPU. Po každé konverzi se počítač restartoval.

V důsledku toho bylo každé video převedeno desetkrát v každém video konvertoru. Pro automatizaci této rutinní práce byla napsána speciální utilita S GUI, což umožňuje plně automatizovat proces testování.

Konfigurace zkušební stolice

Testovací stojan měl následující konfiguraci:

  • procesor - Intel Core i7-3770K;
  • základní deska - Gigabyte GA-Z77X-UD5H;
  • čipová sada systémová deska- Intel Z77 Express;
  • paměť - DDR3-1600;
  • velikost paměti - 8 GB (dva 4 GB moduly GEIL);
  • operační režim paměti - dvoukanálový;
  • grafická karta - NVIDIA GeForce GTX 660Ti (ovladač videa 314.07);
  • disk - Intel SSD 520 (240 GB).

Na tribuně byl instalován operační sál systém Windows 7 Ultimate (64bitová verze).

Zpočátku jsme procesor a všechny ostatní součásti systému testovali v běžném provozu. Procesor Intel Core i7-3770K přitom pracoval na nominální frekvenci 3,5 GHz c aktivovaný režim Turbo zrychlení (maximální frekvence procesor v režimu Turbo Boost je 3,9 GHz).

Poté jsme proces testování zopakovali, ale při přetaktování procesoru na pevnou frekvenci 4,5 GHz (bez použití režimu Turbo Boost). To umožnilo odhalit závislost rychlosti převodu na frekvenci procesoru (CPU).

V další fázi testování jsme se vrátili ke standardnímu nastavení procesoru a opakovanému testování s dalšími grafickými kartami:

  • NVIDIA GeForce GTX 280 (ovladač 314.07);
  • NVIDIA GeForce GTX 460 (ovladač 314.07);
  • AMD Radeon HD6850 (ovladač 13.1).

Převod videa byl tedy proveden na čtyřech grafických kartách různých architektur.

Starší grafická karta NVIDIA GeForce 660Ti je založena na stejnojmenném grafickém procesoru s kódovým označením GK104 (architektura Kepler), vyrobeném 28nm procesní technologií. Tento GPU obsahuje 3,54 miliardy tranzistorů a plochu matrice 294 mm2.

Připomeňme, že GPU GK104 obsahuje čtyři clustery pro zpracování grafiky (Graphics Processing Clusters, GPC). Clustery GPC jsou nezávislá zařízení v procesoru a jsou schopna pracovat jako samostatná zařízení, protože mají všechny potřebné zdroje: rasterizéry, geometrii a moduly textur.

Každý takový cluster má dva streamovací multiprocesorové SMX (Streaming Multiprocessor), ale v procesoru GK104 v jednom z clusterů je jeden multiprocesor blokován, takže je celkem sedm multiprocesorů SMX.

Každý SMX Streaming Multiprocessor obsahuje 192 Stream Compute Cores (CUDA Cores), takže procesor GK104 má celkem 1344 CUDA jader. Každý multiprocesor SMX navíc obsahuje 16 jednotek TMU, 32 jednotek speciálních funkcí (SFU), 32 jednotek Load-Store Unit (LSU), engine PolyMorph a další.

Grafická karta GeForce GTX 460 je založena na GPU s kódovým označením GF104 založené na architektuře Fermi. Tento procesor je vyroben 40nm procesní technologií a obsahuje asi 1,95 miliardy tranzistorů.

GPU GF104 obsahuje dva clustery pro zpracování grafiky GPC. Každý má čtyři streamovací multiprocesorové SM, ale v procesoru GF104 v jednom z clusterů je blokován jeden multiprocesor, takže je zde pouze sedm multiprocesorových SM.

Každý SM streamovací multiprocesor obsahuje 48 stream výpočetních jader (CUDA jader), takže procesor GK104 má celkem 336 CUDA jader. Každý SM multiprocesor navíc obsahuje osm texturových jednotek (TMU), osm jednotek speciálních funkcí (SFU), 16 jednotek Load-Store Unit (LSU), PolyMorph engine a další.

GeForce GTX 280 GPU patří do druhé generace sjednocené architektury GPU NVIDIA a je velmi odlišná architekturou od Fermi a Kepler.

GeForce GTX 280 GPU se skládá z Texture Processing Clusters (TPC), které jsou sice podobné, ale velmi se liší od clusterů pro zpracování grafiky Fermi a Kepler GPC. Celkem je takových clusterů v procesoru GeForce GTX 280 deset. Každý cluster TPC obsahuje tři SM a osm TMU. Každý multiprocesor se skládá z osmi stream procesorů (SP). Multiprocesory obsahují také jednotky pro vzorkování a filtrování texturových dat, které se používají jak v grafice, tak v některých výpočetních úlohách.

V jednom TPC clusteru je tedy 24 stream procesorů a v GPU GeForce GTX 280 jich je již 240.

Souhrnné charakteristiky grafických karet založených na GPU NVIDIA použitých při testování jsou uvedeny v tabulce.

Ve výše uvedené tabulce není žádná grafická karta AMD Radeon HD6850, což je zcela přirozené, protože podle Technické specifikace těžko srovnávat s grafickými kartami NVIDIA. Proto to zvážíme samostatně.

GPU AMD Radeon HD6850 s kódovým označením Barts je vyráběno 40nm procesem a obsahuje 1,7 miliardy tranzistorů.

Architektura procesoru AMD Radeon HD6850 je sjednocená architektura s řadou běžných procesorů pro streamování různých druhů dat.

Procesor AMD Radeon HD6850 se skládá z 12 jader SIMD, z nichž každé obsahuje 16 superskalárních stream procesorových jednotek a čtyři texturovací jednotky. Každý superskalární stream procesor obsahuje pět univerzálních stream procesorů. Celkem je tedy v GPU AMD Radeon HD6850 12*um*16*um*5=960 univerzálních stream procesorů.

Frekvence GPU grafické karty AMD Radeon HD6850 je 775 MHz a efektivní frekvence paměti GDDR5 je 4000 MHz. Velikost paměti je 1024 MB.

Výsledky testů

Pojďme tedy k výsledkům testů. Začněme prvním testem, kdy je použita grafická karta NVIDIA GeForce GTX 660Ti a procesor Intel Core i7-3770K je v normálním režimu.

Na Obr. Obrázky 1-3 ukazují výsledky převodu tří testovacích videí se třemi převodníky v režimech s a bez GPU.

Jak je vidět z výsledků testů, vliv použití GPU je zřejmý. U Xilisoft Video Converter Ultimate 7.7.2 se při použití GPU doba konverze zkrátí o 14 %, 9 % a 19 % u prvního, druhého a třetího videa.

Pro Wondershare Video Converter Ultimate 6.0.32 může využití GPU zkrátit dobu konverze o 10 %, 13 % a 23 % u prvního, druhého a třetího videa.

Movavi Video Converter 10.2.1 ale nejvíce těží z použití GPU. U prvního, druhého a třetího videa je zkrácení doby konverze o 64 %, 81 % a 41 %.

Je jasné, že zisk z použití GPU závisí jak na původním videu, tak na nastavení konverze videa, což ve skutečnosti dokazují naše výsledky.

Nyní se podívejme, jaký bude zisk v době konverze při přetaktování procesoru Intel Core i7-3770K na frekvenci 4,5 GHz. Pokud předpokládáme, že v normálním režimu jsou všechna jádra procesoru zatížena při převodu a pracují na frekvenci 3,7 GHz v režimu Turbo Boost, pak zvýšení frekvence na 4,5 GHz odpovídá přetaktování o 22 %.

Na Obr. Obrázky 4-6 ukazují výsledky převodu tří testovacích videí při přetaktování procesoru v režimech s a bez GPU. V tomto případě vám použití grafického procesoru umožní získat zisk v době konverze.

U Xilisoft Video Converter Ultimate 7.7.2 se při použití GPU doba konverze zkrátí o 15 %, 9 % a 20 % u prvního, druhého a třetího videa.

Pro Wondershare Video Converter Ultimate 6.0.32 může použití GPU zkrátit dobu převodu o 10 %, 10 % a 20 % pro první, druhé a třetí video.

U Movavi Video Converter 10.2.1 může použití GPU zkrátit dobu konverze o 59 %, 81 % a 40 %.

Přirozeně je zajímavé vidět, jak přetaktování procesoru může zkrátit dobu konverze s GPU i bez něj.

Na Obr. Obrázky 7-9 ukazují výsledky porovnání doby konverze videa bez použití GPU v normálním režimu procesoru a v režimu přetaktování. Protože se v tomto případě převod provádí pouze pomocí CPU bez výpočtů GPU, je zřejmé, že zvýšení taktu procesoru vede ke zkrácení doby převodu (zvýšení rychlosti převodu). Stejně tak je zřejmé, že snížení rychlosti konverze by mělo být u všech testovacích videí přibližně stejné. Takže u video konvertoru Xilisoft Video Converter Ultimate 7.7.2 se při přetaktování procesoru doba konverze zkrátí o 9, 11 a 9 % u prvního, druhého a třetího videa. Pro Wondershare Video Converter Ultimate 6.0.32 se doba konverze zkrátí o 9 %, 9 % a 10 % pro první, druhé a třetí video. U videokonvertoru Movavi Video Converter 10.2.1 se doba konverze zkrátí o 13, 12 a 12 %.

Při přetaktování procesoru o 20 % se tedy doba konverze zkrátí asi o 10 %.

Porovnejme dobu konverze videa pomocí GPU v normálním režimu procesoru a v režimu přetaktování (obr. 10-12).

U video konvertoru Xilisoft Video Converter Ultimate 7.7.2 se při přetaktování procesoru zkrátí doba konverze u prvního, druhého a třetího videa o 10, 10 a 9 %. Pro Wondershare Video Converter Ultimate 6.0.32 se doba konverze zkrátí o 9 %, 6 % a 5 % u prvního, druhého a třetího videa. U videokonvertoru Movavi Video Converter 10.2.1 se doba konverze zkrátí o 0,2, 10 a 10 %.

Jak vidíte, u převodníků Xilisoft Video Converter Ultimate 7.7.2 a Wondershare Video Converter Ultimate 6.0.32 je zkrácení doby převodu při přetaktování procesoru přibližně stejné jak s GPU, tak bez něj, což je logické, protože tyto převodníky nepoužívejte velmi efektivně GPU computing. Ale pro Movavi Video Converter 10.2.1, který efektivně využívá GPU computing, má přetaktování procesoru v režimu GPU computing malý vliv na zkrácení doby konverze, což je také pochopitelné, protože v tomto případě hlavní zátěž padá na GPU.

Nyní se podívejme na výsledky testů s různými grafickými kartami.

Zdálo by se, že čím výkonnější je grafická karta a tím více v GPU CUDA jádra(nebo univerzální stream procesory pro grafické karty AMD), efektivnější převod videa by měl být při použití GPU. Ale v praxi to tak nefunguje.

Pokud jde o grafické karty založené na GPU NVIDIA, situace je následující. Při použití Xilisoft Video Converter Ultimate 7.7.2 a Wondershare Video Converter Ultimate 6.0.32 doba převodu prakticky nezávisí na typu použité grafické karty. Tedy pro grafické karty NVIDIA GeForce GTX 660Ti, NVIDIA GeForce GTX 460 a NVIDIA GeForce GTX 280 v režimu výpočtu GPU, doba převodu je stejná (obr. 13-15).

Rýže. 1. Výsledky převodu prvního
testovací video v normálním režimu
práce procesoru

grafické karty procesoru v režimu využití GPU

Rýže. 14. Výsledky porovnání doby konverze druhého videa

Rýže. 15. Výsledky porovnání doby konverze třetího videa
na různých grafických kartách v režimu využití GPU

To lze vysvětlit pouze skutečností, že algoritmus výpočtu GPU implementovaný v Xilisoft Video Converter Ultimate 7.7.2 a Wondershare Video Converter Ultimate 6.0.32 je jednoduše neefektivní a neumožňuje vám aktivně používat všechny grafických jader. To mimochodem vysvětluje skutečnost, že u těchto převodníků je rozdíl v době převodu v režimech GPU a non-GPU malý.

V Movavi Video Converter 10.2.1 je situace poněkud odlišná. Jak si pamatujeme, tento převodník je schopen velmi efektivně využívat výpočty GPU, a proto v režimu GPU závisí doba převodu na typu použité grafické karty.

Ale s grafická karta AMD Radeon HD 6850 je vše jako obvykle. Buď ovladač grafické karty "křivky", nebo algoritmy implementované v převodnících potřebují vážné vylepšení, ale v případě výpočtů GPU se výsledky buď nezlepší, nebo se zhorší.

Přesněji řečeno, situace je následující. U Xilisoft Video Converter Ultimate 7.7.2 se při použití GPU pro převod prvního testovacího videa doba převodu prodlouží o 43 %, při převodu druhého videa o 66 %.

Xilisoft Video Converter Ultimate 7.7.2 se navíc vyznačuje nestabilními výsledky. Rozpětí v době konverze může dosáhnout 40 %! Proto jsme všechny testy desetkrát opakovali a vypočítali průměrný výsledek.

Ale u Wondershare Video Converter Ultimate 6.0.32 a Movavi Video Converter 10.2.1 se při použití GPU pro převod všech tří videí doba převodu vůbec nezmění! Je pravděpodobné, že Wondershare Video Converter Ultimate 6.0.32 a Movavi Video Converter 10.2.1 buď při převodu nepoužívají technologii AMD APP, nebo je ovladač videa AMD jednoduše „pokřivený“, což má za následek nefunkčnost technologie AMD APP.

závěry

Na základě provedených testů lze vyvodit následující důležité závěry. Moderní video konvertory skutečně mohou využívat výpočetní technologii GPU, která může zvýšit rychlost konverze. To ale vůbec neznamená, že se všechny výpočty kompletně přenesou na GPU a CPU zůstane nečinné. Jak ukazuje testování, při použití technologie GPGPU zůstává centrální procesor zatížen, což znamená, že použití výkonných vícejádrových centrálních procesorů v systémech používaných pro konverzi videa zůstává relevantní. Výjimkou z tohoto pravidla je technologie AMD APP na GPU AMD. Například při použití Xilisoft Video Converter Ultimate 7.7.2 s povolenou technologií AMD APP se sice zátěž CPU skutečně sníží, ale to vede k tomu, že se doba konverze nezkracuje, ale naopak prodlužuje.

Obecně, pokud mluvíme o převodu videa z dodatečné použití grafický procesor, k vyřešení tohoto problému je vhodné použít grafické karty s grafickými procesory NVIDIA. Jak ukazuje praxe, pouze v tomto případě je možné dosáhnout zvýšení rychlosti konverze. A musíte si uvědomit, že skutečné zvýšení rychlosti konverze závisí na mnoha faktorech. Jedná se o vstupní a výstupní video formáty a samozřejmě samotný video konvertor. Xilisoft Video Converter Ultimate 7.7.2 a Wondershare Video Converter Ultimate 6.0.32 nejsou pro tento úkol vhodné, ale konvertor a Movavi Video Converter 10.2.1 jsou schopny velmi efektivně využívat GPU NVIDIA.

Pokud jde o grafické karty založené na GPU AMD, neměly by se vůbec používat pro úlohy konverze videa. V nejlepším případě to nezvýší rychlost konverze a v nejhorším případě ji můžete snížit.

GPU Computing

Technologie CUDA (Compute Unified Device Architecture) je softwarová a hardwarová architektura, která umožňuje výpočty pomocí GPU NVIDIA, které podporují technologii GPGPU (arbitrary computing on video cards). Architektura CUDA se poprvé objevila na trhu s vydáním osmé generace čipu NVIDIA - G80 a je přítomna ve všech následujících sériích grafických čipů, které se používají v rodinách akcelerátorů GeForce, ION, Quadro a Tesla.

CUDA SDK umožňuje programátorům implementovat ve speciálním zjednodušeném dialektu programovacího jazyka C algoritmy, které lze spustit na GPU NVIDIA a zahrnují speciální funkce v textu programu C. CUDA dává vývojáři možnost podle vlastního uvážení organizovat přístup k instrukční sadě grafického akcelerátoru a spravovat jeho paměť, organizovat na něm složité paralelní výpočty.

Příběh

V roce 2003 byly Intel a AMD ve společném závodě o nejvýkonnější procesor. V průběhu let se taktovací frekvence v důsledku tohoto závodu výrazně zvýšila, zejména po vydání Intel Pentium 4.

Po navýšení taktovacích frekvencí (v letech 2001 až 2003 se taktovací frekvence Pentia 4 zdvojnásobila z 1,5 na 3 GHz) a uživatelé se museli spokojit s desetinovými gigahertzy, které výrobci přinesli na trh (v letech 2003 až 2005 takt frekvence zvýšeny o 3 až 3,8 GHz).

Architektury optimalizované pro vysoké takty, jako je Prescott, také začaly mít potíže, a to nejen ve výrobě. Výrobci čipů čelili výzvám při překonávání fyzikálních zákonů. Někteří analytici dokonce předpovídali, že Moorův zákon přestane fungovat. To se ale nestalo. Původní význam zákona je často zkreslen, ale odkazuje na počet tranzistorů na povrchu křemíkového jádra. Na dlouhou dobu zvýšení počtu tranzistorů v CPU bylo doprovázeno odpovídajícím zvýšením výkonu - což vedlo ke zkreslení významu. Pak se ale situace zkomplikovala. Návrháři architektury CPU přistoupili k zákonu redukce zisku: počet tranzistorů, které bylo potřeba přidat pro žádoucí zvýšení výkonu, byl čím dál tím větší, což vedlo do slepé uličky.

Důvod, proč výrobci GPU nečelili tomuto problému, je velmi jednoduchý: CPU jsou navrženy tak, aby dosáhly co nejlepšího výkonu v proudu instrukcí, které zpracovávají různá data (jak celá čísla, tak čísla s pohyblivou řádovou čárkou), provádějí náhodný přístup do paměti atd. d. Až dosud se vývojáři snažili poskytovat větší paralelismus instrukcí – tedy provádět paralelně co nejvíce instrukcí. Tak se například u Pentia objevilo superskalární provádění, kdy za určitých podmínek bylo možné provést dvě instrukce na takt. Pentium Pro obdrželo provedení instrukcí mimo pořadí, což umožnilo optimalizovat výkon výpočetních jednotek. Problém je v tom, že paralelní provádění sekvenčního proudu instrukcí má zjevná omezení, takže slepé zvyšování počtu výpočetních jednotek nepřináší zisk, protože většinu času budou stále nečinné.

Obsluha GPU je poměrně jednoduchá. Skládá se z odebrání skupiny polygonů na jedné straně a generování skupiny pixelů na straně druhé. Polygony a pixely jsou na sobě nezávislé, takže je lze zpracovávat paralelně. V GPU je tak možné alokovat velkou část krystalu pro výpočetní jednotky, které se na rozdíl od CPU skutečně využijí.

GPU se od CPU liší nejen v tomto. Přístup k paměti v GPU je velmi svázaný - pokud je čten texel, pak po několika cyklech bude načten sousední texel; když je zapsán pixel, sousední se zapíše po několika cyklech. Inteligentním uspořádáním paměti můžete dosáhnout výkonu téměř teoretického šířku pásma. To znamená, že GPU na rozdíl od CPU nevyžaduje velkou mezipaměť, protože jeho úlohou je urychlit operace texturování. Stačí k tomu několik kilobajtů obsahujících několik texelů používaných v bilineárních a trilineárních filtrech.

První výpočty na GPU

Vůbec první pokusy o takovou aplikaci se omezily na použití některých hardwarových funkcí, jako je rasterizace a Z-buffering. Ale v současném století, s příchodem shaderů, začali zrychlovat výpočet matic. V roce 2003 byla SIGGRAPH přidělena samostatná sekce pro GPU computing s názvem GPGPU (General-Purpose computation on GPU).

Nejznámější BrookGPU je kompilátor programovacího jazyka Brook stream, určený k provádění negrafických výpočtů na GPU. Před jeho objevením si vývojáři využívající možnosti video čipů pro výpočty zvolili jedno ze dvou běžných API: Direct3D nebo OpenGL. To vážně omezilo použití GPU, protože 3D grafika používá shadery a textury, o kterých paralelní programátoři nemusí vědět, používají vlákna a jádra. Brook jim mohl pomoci usnadnit jejich úkol. Tato streamovací rozšíření jazyka C vyvinutá na Stanfordské univerzitě skrývala před programátory 3D API a prezentovala video čip jako paralelní koprocesor. Kompilátor analyzoval soubor .br s kódem C++ a rozšířeními a vytvořil kód propojený s knihovnou s podporou DirectX, OpenGL nebo x86.

Vzhled Brooka vzbudil zájem společností NVIDIA a ATI a dále otevřel jejich zcela nový sektor – paralelní počítače založené na video čipech.

Dále se někteří výzkumníci z projektu Brook přesunuli do vývojového týmu NVIDIA, aby představili hardwarově-softwarovou paralelní výpočetní strategii, čímž otevřeli nový podíl na trhu. A hlavní výhodou této iniciativy NVIDIA bylo, že vývojáři dokonale znají všechny možnosti svých GPU do nejmenších detailů a není potřeba používat grafické API a s hardwarem můžete pracovat přímo pomocí ovladače. Výsledkem snažení tohoto týmu je NVIDIA CUDA.

Oblasti použití paralelních výpočtů na GPU

Když je výpočetní výkon přenesen na GPU, v mnoha úlohách je dosaženo 5-30násobné akcelerace ve srovnání s rychlými univerzálními procesory. Největších čísel (řádově 100x zrychlení a ještě více!) je dosaženo na kódu, který není příliš vhodný pro výpočty pomocí bloků SSE, ale je docela vhodný pro GPU.

Toto jsou jen některé příklady zrychlení syntetického kódu na GPU oproti vektorizovanému kódu SSE na CPU (podle NVIDIA):

Fluorescenční mikroskopie: 12x.

Molekulární dynamika (nevazebný výpočet síly): 8-16x;

Elektrostatika (přímá a víceúrovňová coulombovská sumace): 40-120x a 7x.

Tabulka, kterou NVIDIA zobrazuje na všech prezentacích a která ukazuje rychlost GPU vzhledem k CPU.

Seznam hlavních aplikací, ve kterých se GPU computing používá: analýza a zpracování obrazu a signálu, fyzikální simulace, výpočetní matematika, výpočetní biologie, finanční výpočty, databáze, dynamika plynů a kapalin, kryptografie, adaptivní radiační terapie, astronomie, zpracování zvuku, bioinformatika, biologické simulace, počítačové vidění, dolování dat, digitální kino a televize, elektromagnetické simulace, geoinformační systémy, vojenské aplikace, plánování těžby, molekulární dynamika, zobrazování magnetickou rezonancí (MRI), neuronové sítě, oceánografický výzkum, fyzika částic, simulace skládání proteinů, kvantová chemie, sledování paprsků, vizualizace, radar, simulace nádrží, umělá inteligence, satelitní analýza dat, seismický průzkum, chirurgie, ultrazvuk, videokonference.

Výhody a omezení CUDA

Z pohledu programátora je grafický pipeline soubor fází zpracování. Geometrický blok generuje trojúhelníky a rasterizační blok generuje pixely zobrazené na monitoru. Tradiční model programování GPGPU je následující:

Pro přenos výpočtů na GPU v rámci takového modelu je zapotřebí speciální přístup. Dokonce i přidání dvou vektorů prvek po prvku bude vyžadovat nakreslení tvaru na obrazovku nebo do vyrovnávací paměti mimo obrazovku. Obrázek je rastrován, barva každého pixelu je vypočtena podle daného programu (pixel shader). Program načte vstupní data z textur pro každý pixel, sečte je a zapíše do výstupní vyrovnávací paměti. A všechny tyto četné operace jsou potřebné pro to, co je napsáno v jediném operátoru v konvenčním programovacím jazyce!

Proto má použití GPGPU pro obecné výpočty omezení v podobě příliš velké složitosti, kterou se vývojáři nemohou naučit. Ano a dalších omezení je dost, protože pixel shader je jen vzorec pro závislost výsledné barvy pixelu na jeho souřadnicích a jazyk pixel shader je jazyk pro psaní těchto vzorců se syntaxí podobnou C. Rané metody GPGPU jsou chytrým trikem, jak využít sílu GPU, ale bez jakéhokoli pohodlí. Data jsou zde reprezentována obrázky (texturami) a algoritmus je reprezentován rasterizačním procesem. Je třeba poznamenat a velmi specifický model paměti a provádění.

Hardwarová a softwarová architektura NVIDIA pro výpočty na GPU od NVIDIA se od předchozích modelů GPGPU liší tím, že umožňuje psát programy pro GPU v reálném C se standardní syntaxí, ukazateli a nutností minimálního rozšíření pro přístup k výpočetním zdrojům video čipů. CUDA nezávisí na grafických rozhraních API a má některé funkce navržené speciálně pro obecné účely.

Výhody CUDA oproti tradičnímu přístupu k GPGPU počítání

CUDA poskytuje přístup k 16 KB sdílené paměti na multiprocesor, kterou lze použít k organizaci cache s větší šířkou pásma než načítání textur;

Efektivnější přenos dat mezi systémem a video pamětí;

Není potřeba grafických API s redundancí a režií;

Lineární adresování paměti a shromažďování a rozptylování, schopnost zapisovat na libovolné adresy;

Hardwarová podpora celočíselných a bitových operací.

Hlavní omezení CUDA:

Nedostatek podpory rekurze pro spustitelné funkce;

Minimální šířka bloku je 32 vláken;

Uzavřená architektura CUDA vlastněná společností NVIDIA.

Slabiny programování s předchozími metodami GPGPU spočívají v tom, že tyto metody nepoužívají prováděcí jednotky vertex shader v předchozích nesjednocených architekturách, data se ukládají v texturách a vydávají se do vyrovnávací paměti mimo obrazovku a víceprůchodové algoritmy používají jednotky pixel shader. Omezení GPGPU zahrnují: nedostatečně efektivní využití hardwarových schopností, omezení šířky pásma paměti, žádná operace rozptylu (pouze shromažďování), povinné používání grafického API.

Hlavní výhody CUDA oproti předchozím metodám GPGPU vyplývají ze skutečnosti, že tato architektura je navržena tak, aby efektivně využívala negrafické výpočty na GPU a používá programovací jazyk C, aniž by vyžadovala portování algoritmů do podoby vhodné pro koncepci grafiky. potrubí. CUDA nabízí nová cesta GPU computing, který nepoužívá grafické rozhraní API a nabízí náhodný přístup k paměti (scatter nebo shromažďování). Taková architektura neobsahuje nevýhody GPGPU a využívá všechny prováděcí jednotky a také rozšiřuje možnosti prostřednictvím celočíselné matematiky a operací s bitovým posunem.

CUDA otevírá některé hardwarové funkce, které nejsou dostupné z grafických API, jako je sdílená paměť. Jedná se o malé množství paměti (16 kilobajtů na multiprocesor), ke kterému mají přístup bloky vláken. Umožňuje vám ukládat do mezipaměti vaše nejčastěji používaná data a může poskytnout další vysoká rychlost, ve srovnání s použitím načítání textur pro tento úkol. To zase snižuje propustnost paralelních algoritmů v mnoha aplikacích. Například je užitečný pro lineární algebru, rychlou Fourierovu transformaci a filtry pro zpracování obrazu.

Pohodlnější v CUDA a přístupu k paměti. Programový kód v grafickém API vydává data ve formě 32 s jednoduchou přesností hodnot s plovoucí desetinnou čárkou (hodnoty RGBA současně v osmi cílech vykreslování) v předdefinovaných oblastech a CUDA podporuje bodové nahrávání - neomezený počet záznamů na jakékoli adrese . Tyto výhody umožňují provádět na GPU některé algoritmy, které nelze efektivně implementovat pomocí metod GPGPU založených na grafickém API.

Grafická rozhraní API také nutně ukládají data do textur, což vyžaduje předchozí zabalení velkých polí do textur, což komplikuje algoritmus a nutí použití speciálního adresování. A CUDA umožňuje číst data na jakékoli adrese. ještě jeden výhoda CUDA je optimalizovaná výměna dat mezi CPU a GPU. A pro vývojáře, kteří chtějí přistupovat k nízké úrovni (například při psaní jiného programovacího jazyka), nabízí CUDA možnost nízkoúrovňového programování v assembleru.

Nevýhody CUDA

Jednou z mála nevýhod CUDA je špatná přenositelnost. Tato architektura funguje pouze na videočipech této společnosti, a ne na všech, ale počínaje řadou GeForce 8 a 9 a odpovídajícími Quadro, ION a Tesla. NVIDIA uvádí číslo 90 milionů video čipů kompatibilních s CUDA.

Alternativy k CUDA

Rámec pro psaní počítačové programy spojené s paralelními výpočty na různých grafických a centrálních procesorech. Rámec OpenCL obsahuje programovací jazyk založený na standardu C99 a aplikační programovací rozhraní (API). OpenCL poskytuje paralelismus na úrovni instrukcí a dat a je implementací techniky GPGPU. OpenCL je zcela otevřený standard a za jeho používání se neplatí žádné licenční poplatky.

Cílem OpenCL je doplnit OpenGL a OpenAL, což jsou otevřené průmyslové standardy pro 3D počítačová grafika a zvuk s využitím schopností GPU. OpenCL vyvíjí a spravuje Khronos Group, neziskové konsorcium, které zahrnuje mnoho významných společností včetně Apple, AMD, Intel, nVidia, Sun Microsystems, Sony Computer Entertainment a dalších.

CAL/IL (výpočetní abstraktní vrstva/středně pokročilý jazyk)

Technologie ATI Stream je sada hardwaru a softwarových technologií, které umožňují použití grafických procesory AMD, dohromady s centrální procesorová jednotka, pro zrychlení mnoha aplikací (nejen grafických).

Aplikace pro ATI Stream jsou výpočetně náročné aplikace, jako je finanční analýza nebo zpracování seismických dat. Používání stream procesor umožnilo až 55krát zvýšit rychlost některých finančních výpočtů oproti řešení stejného problému pouze pomocí centrálního procesoru.

NVIDIA nepovažuje technologii ATI Stream za příliš silného konkurenta. CUDA a Stream jsou dvě různé technologie, které jsou na různých úrovních vývoje. Programování pro produkty ATI je mnohem obtížnější - jejich jazyk připomíná spíše assembler. Na druhou stranu CUDA C je jazyk mnohem vyšší úrovně. Psaní na něm je pohodlnější a jednodušší. Pro velké developerské společnosti je to velmi důležité. Pokud mluvíme o výkonu, můžeme vidět, že jeho špičková hodnota u produktů ATI je vyšší než u řešení NVIDIA. Ale opět vše záleží na tom, jak tuto sílu získat.

DirectX11 (DirectCompute)

Rozhraní pro programování aplikací, které je součástí DirectX, sady rozhraní API od společnosti Microsoft, které je navrženo pro provoz na počítačích kompatibilních s IBM PC s operačními systémy řady Microsoft Windows. DirectCompute je navržen k provádění obecných výpočtů na GPU a je implementací konceptu GPGPU. DirectCompute byl původně publikován jako součást DirectX 11, ale později byl zpřístupněn také pro DirectX 10 a DirectX 10.1.

NVDIA CUDA v ruské vědecké komunitě.

Od prosince 2009 programovací model CUDA se vyučuje na 269 univerzitách po celém světě. V Rusku se školicí kurzy o CUDA vyučují na univerzitách v Moskvě, Petrohradě, Kazani, Novosibirsku a Permu, Mezinárodní univerzitě přírody společnosti a člověka „Dubna“, Společném institutu pro jaderný výzkum, Moskevském institutu elektroniky Technologie, Ivanovo State Power Engineering University, BSTU. V. G. Shukhova, MSTU im. Bauman, RKhTU im. Mendělejev, Ruské výzkumné centrum „Kurčatovův institut“, Meziregionální superpočítačové centrum Ruské akademie věd, Technologický institut Taganrog (TTI SFedU).