PC pro CPU výpočty, nejlepší poměr cena/výkon?

RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #15 kdy: 29. 08. 2021, 08:23:13 »
Grafika může něco počítat třeba 10x rychleji, kdo tohle neví? Jenže v mem případě na tom nezáleží já chci z videí data v RGB, což můžeš vědět z mého předchozího threadu ohledne ffmpeg kde jsi se taky vyskytoval. Co mám optimalizovat? Stahnout zdrojaky FFmpeg a optimalizovat je? Zatím jsem řešil jak vubec nejrychleji ty data dekodovat aby z toho bylo datové pole snímků.. i s HW akcelerací se tam GPU moc neangažuje, protože samotné dekodování problem není ale spíš jak to dostat dál. Ono GPU není všespásný a posílat tam malý operace a vracet je zpátky taky není optimální...

Ad tento zacatek processingu: v HW akceleraci se angazuje jedine hw dekoder, ktery je soucasti GPU. Napr. ruzne graficke karty od nvidie maji ruzny pocet NVDEC jednotek: https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
Proto vytizeni CPU a GPU je v idealnim pripade 0%, pro ukol "dekoduj video".

Pokud data stahujes do RAM, tak pocitej na 1080p30 v YUV2 ze je 125MB/s - cca 1Gb/s pro kazdej stream. Typicka karta rady 1060/70/80 na jeden dekoder dava 650 fps ~ temer 26 videi v 1080p25, celkovy vystup bude kolem 22 Gb/s (2750 MB/s).

Po prevedeni na RGB je objem dat dvojnasobnej - 44 Gb/s (5500 MB/s) a to se GPU ani CPU jeste nezapojilo.

A ted se ptam - co s timto obrim tokem dat chces delat? Dekodovani videa neni "zpracovani". Pokud to chces jen takto v RGB ulozit na SSD, tak zadne CPU nepotrebujes, ale spis hodne rychle diskove pole.

Pouzitim vicero karet se vykon skaluje. Nebo volbou profi grafik lze ziskat vicero dekoderu - treba 2,3 ci 5 na kartu. Jestli das do kompu dve takove A100 grafiky a budes mit 10 NVDEC jednotek - byl bys schopen tocit tim 440 Gbit/s RGB dat (55GB/s) - coz saturuje dvakrat PCIe Gen4x16 - a na to potrebujes uz 2nd/3rd gen EPIC-a, jen abys mohl sva podelana RGB data stahnout do RAMky.

Ty vidis svuj problem v potrebe nakupu CPU, ja vidim ze CPU ani nepotrebujes, jestli je ukol JENOM dekodovani. Proto se ptam - co s tim chces jako delat pak ?


PanVP

Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #16 kdy: 29. 08. 2021, 10:30:43 »
Kámoš pro mě dělá různé vychytávky,  jestli jsi z Prahy, tak mi napiš. Něco bych přivezl.

alex6bbc

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #17 kdy: 29. 08. 2021, 11:51:50 »
taky to vidim kriticky, ze chces softwarovy problem resit hardwarove nakupem nejrychlejsiho CPU.
kdyby sis to vic promyslel, tak bys treba prisel jak lepe vyuzit paralelizaci a treba i GPU.

PanVP

Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #18 kdy: 29. 08. 2021, 13:45:27 »
Výpočty přes GPU jsou X krát rychlejší, ale prototypování je určo snazší na CPU.

Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #19 kdy: 29. 08. 2021, 14:23:42 »
taky to vidim kriticky, ze chces softwarovy problem resit hardwarove nakupem nejrychlejsiho CPU.
kdyby sis to vic promyslel, tak bys treba prisel jak lepe vyuzit paralelizaci a treba i GPU.

Já ale chci at ten můj side projekt neobtěžuje na pracovních PC, tak prostě proč nechtít lepší CPU, ať na tom má bežet cokoliv.
Grafiky tu mám několik kusů, "výpočty" na nich mě živí. Ano zvažuju jak je využít, ale podle všeho nic rychlejšího než ffmpeg není a ten po zapnutí GPU podpory jede vícemeně stejně rychle, jen se grafiky vytíží místo 0 na 15% a CPU jede na 100% stejně jak před tím. Takže na základě toho předpokládám že mi v tom případě nepomůže aby ffmpeg bežel několikrát a každý dělal jinou část. A taky to PC/CPU nekupuju hned bezhlavě, třeba to není bottleneck a proto mi to kámoš který shodou okolností má to 5900X otestuje jak to pojede u něj. Kdyby mu to jelo stejně rychle, tak je bottleneck jinde.


Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #20 kdy: 29. 08. 2021, 15:00:10 »
Ty vidis svuj problem v potrebe nakupu CPU, ja vidim ze CPU ani nepotrebujes, jestli je ukol JENOM dekodovani. Proto se ptam - co s tim chces jako delat pak ?
Tak předně dodávám že tohle je můj side projekt abych se naučil víc kolem všeho co k tomu využiju.
Prakticky potřebuju ze vstupního videa udělat framy kde je porovnám mezi sebou, na což by mi stačilo je mít v rozlišení 8x8 nebo 16x16 grayscale, což i samotné převedení dost urychluje a nejspíš potvrzuje co píšeš. Pak promažu ty kde se nic nehýbe porovnáním těch zmenšenin, aby z každé takové situace zůstal jen jeden frame. To mi třeba počet 150k framů zmenší na 10-30k, což bude pokaždé jinak. Jenže pak ty zbylé chci zase ve větším rozlišení kde na ně budu aplikovat nějake operace, které už by měly bežet na GPU. Takže je vlastně otázka jestli to tím prohnat 2x, protože někdy to zmenšování na 8x8 jelo i 1500-3000 FPS, ale HD jede tak 500 max at z nich dělám 8x8 nebo 640x360... pak si udělat list jen toho co nechávám a vyzobat to zvlášt ve větším rozlišení. A nebo to vše převést najednou a promazat.

třeba by to šlo nějak chytřeji porovnat abych se vyvaroval zbytečnému zmenšování a převádění všeho když ve finale potřebuju 10-15% originalu.

Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #21 kdy: 29. 08. 2021, 15:08:08 »
Výpočty přes GPU jsou X krát rychlejší, ale prototypování je určo snazší na CPU.

Jeden inteligentní miliardář řekl že je nesmysl snažit se optimalizovat už při designování produktu, že je lepší vypustit to nedokonalý a až pak zjistit kde se dá co vylepšit. Protože teorie a praxe se často liší.

RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #22 kdy: 29. 08. 2021, 15:16:58 »
Ty vidis svuj problem v potrebe nakupu CPU, ja vidim ze CPU ani nepotrebujes, jestli je ukol JENOM dekodovani. Proto se ptam - co s tim chces jako delat pak ?
Tak předně dodávám že tohle je můj side projekt abych se naučil víc kolem všeho co k tomu využiju.
Prakticky potřebuju ze vstupního videa udělat framy kde je porovnám mezi sebou, na což by mi stačilo je mít v rozlišení 8x8 nebo 16x16 grayscale, což i samotné převedení dost urychluje a nejspíš potvrzuje co píšeš. Pak promažu ty kde se nic nehýbe porovnáním těch zmenšenin, aby z každé takové situace zůstal jen jeden frame. To mi třeba počet 150k framů zmenší na 10-30k, což bude pokaždé jinak. Jenže pak ty zbylé chci zase ve větším rozlišení kde na ně budu aplikovat nějake operace, které už by měly bežet na GPU. Takže je vlastně otázka jestli to tím prohnat 2x, protože někdy to zmenšování na 8x8 jelo i 1500-3000 FPS, ale HD jede tak 500 max at z nich dělám 8x8 nebo 640x360... pak si udělat list jen toho co nechávám a vyzobat to zvlášt ve větším rozlišení. A nebo to vše převést najednou a promazat.

třeba by to šlo nějak chytřeji porovnat abych se vyvaroval zbytečnému zmenšování a převádění všeho když ve finale potřebuju 10-15% originalu.

Konecne se nekam dostavame:

1/
pokud jde o detekci rozdilu z komprimovane streamu (h264/h265) tak bych na to sel analyzou enkodovaneho streamu - protoze tyhle kodeky koduji keyframe + rozdilove snimky, a kdyz zadnej rozdil nebude, bitrate poklesne.

Jako neni to vsespasne - protoze kodek samozrejme povazuje za mezisnimkovy rozdil i sum v obraze. A s nim si tvuj algoritmus bude muset taky poradit, necekal bych ze na statickem obraze bude rozdil pixelu nula :)

V tomto smeru se nabizi jeste vyuziti hw enkoderu v roli "detektoru pohybu", protoze kodeky delaj presne tohle.


2/
Kdyby to video bylo i-frame only (napr. mjpeg stream), tak lze dekodovat jen DC slozku, tim se dostane 8x mensi obrazek (12.5% v kazde ose), tj. z FHD zbude jen 240x135 px - ale bude to >100x rychlejsi. Pokud je treba vetsi rozliseni, slo by rozbalit i AC a spocitat jen prvni nizkofrekvenci koeficienty. Pro bezne kodeky ale tohle moc nebude fungovat, tam se ocekava kodovani rozdilu vuci obrazu v plnem rozliseni.


3/
v pripade ze to musis dekodovat cely a pocitat rozdily svym zpusobem, abys treba sledoval tendenci, tak je idealni si sestavit tento tok: gpu decode (nvdec) + on-gpu scale + "svuj algoritmus (CUDA)". Zde opravdu nevyuzijes cpu ani trocha, neprijde mi to jako tak slozita uloha, aby to muselo bezet na cpu.



Pokud jede cpu na 100% behem hw/gpu akcelerace, tak je neco spatne (nejspis to dela to skalovani/konverzi formatu, ktere ale maji nekdy svoji GPU variantu, takze bych se zameril timto smerem).

anonacct

Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #23 kdy: 29. 08. 2021, 15:48:17 »
Je to celé nějaké divné, sorry:) GPU tě údajně živí, ale pak z tebe vyleze, že ani nedokážeš zdebugovat využití GPU při nějakém konkrétním workloadu. Co se tu chceš dozvědět, mohl bys to nějak konkretizovat? Budget máš omezený, AVX-512 údajně nepotřebuješ... Běž na bazoš a vem ten nejlevnější 8core Ryzen, co tam najdeš :)

Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #24 kdy: 29. 08. 2021, 15:55:46 »
pokud jde o detekci rozdilu z komprimovane streamu (h264/h265) tak bych na to sel analyzou enkodovaneho streamu - protoze tyhle kodeky koduji keyframe + rozdilove snimky, a kdyz zadnej rozdil nebude, bitrate poklesne.

Jako neni to vsespasne - protoze kodek samozrejme povazuje za mezisnimkovy rozdil i sum v obraze. A s nim si tvuj algoritmus bude muset taky poradit, necekal bych ze na statickem obraze bude rozdil pixelu nula :)
O těch keyframech jsem přemýšlel, jenže to taky záleží s jakým nastavením to je enkodovany. Někdy ty keframy jsou v pravidelném intervalu a myslím že můžou být i plovoucí podle změn.
Mně zatím nejrozuměji vychází porovnávat ty zmenšeniny, protože tím se zbavíš šumu, podle algoritmu zmenšení vlastně řešíš jen low frequeny data a na nejaké flickerování (hýbající se větve v originále) se dá nastavit threshold, že třeba 10% změna na pixelu mezi framy(na tom 8x8) se nepovažuje jako změna. Podívám se po jiných řešeních jestli tu detekci neřešili jinde. Ale to PC se stejně hodí, mam pracovně i jiný věci co se provádí jen na CPU přes noc a tam neexistuje možnost to cpát na GPU.



Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #25 kdy: 29. 08. 2021, 16:20:21 »
Je to celé nějaké divné, sorry:) GPU tě údajně živí, ale pak z tebe vyleze, že ani nedokážeš zdebugovat využití GPU při nějakém konkrétním workloadu. Co se tu chceš dozvědět, mohl bys to nějak konkretizovat? Budget máš omezený, AVX-512 údajně nepotřebuješ... Běž na bazoš a vem ten nejlevnější 8core Ryzen, co tam najdeš :)
To ze mě vylezlo kde? Jo GPU mě živí ale jako uživatele kteremu max stačí hlídat přetečení VRAM a zatížení v % v 3D programech a simulacích.
Přečti jak zněl můj první příspěvek, já jsem prakticky řešil co se vyplatí do 25k pořídit pro CPU operace.. Tam někdo poradil hned v druhým příspěvku že za ty peníze pořídim i Ryzen 5900X a tím to mohlo skončit. Jenže mi tu pak začali cpát AVX512 a že jsem debil že meřím 3D výkon a že to neumim udělat na GPU, když já v tom PC žádnou fancy GPU nechci, tam prsknu to staletý 1GB Quadro a prostě to bude vedlejší komp na vedlejší práce, bude na hajzlu v rohu a bude dělat to co se zrovna hodí. Takže mi přijde rozumné chtít za své peníze co nejsilnější CPU(zvlášt když pracovně se hodí taky) ve stroji kde nebude žádná silná grafika a pokud budu dělat na grafikách na to tu mám jiné stroje.
Ne nejsem expert jak vy nedělám někde v serverovně výpočty předpovědi počasí... prakticky celý je to jen o tom že někdo uhne z tématu a pak mě nutí obhajovat něco o čem jsem se puvodně vubec nebavil.
To je jako kdyby jezdec rally začal cpát někomu kdo chce obyčejný auto že potřebuje keramický kotouče a ptal se kde s tím bude jezdit a že je idiot že teda neví kam s tím všude pojede a ja byl dohnán k tomu prozradit že momentálně teda pojedu do itálie, i když příště třeba jinam.

bazar není třeba, do 25k se to postaví i s novým 12c

Re:PC pro CPU výpočty, nejlepší poměr cena/výkon?
« Odpověď #26 kdy: 29. 08. 2021, 18:18:21 »
Esli potřebuješ pořádnej výkon, proč necílíš na todle?
https://www.alza.cz/amd-ryzen-threadripper-pro-3995wx-d6383346.htm
Prostě svoji apku uzpůsob, ten procesor má fíčuru: Multi-Threading pro efektivní práci s daty to ti tam bude lítat jak fík...
Gréta je nejlepší.