Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 11. duben 2011, 00:29:38 Předmět: KD-tree mono-tracer |
|
|
Malé oživení tématu polopřímek ... chtěl bych poprosit zdejší majitele linux-64 zda by mohli otestovat http://www.otte.cz/forgottenlib-test-lnx64.tar.gz?
Potřebuje knihovny OpenGL a DevIL (bývalé OpenIL), DevIL však toto demo nepoužívá (ale já byl línej někde v půlce vývoje ho odstranit a teď se mi nechtělo).
Možná si to bude chtít trochu pohrát s ini souborem (informace v něm by měly být jasné). Mě by hlavně zajímalo, jak vám vše běží (případně vaše konfigurace - CPU + rychlost RAM především, GPU nehraje roli).
Jedná se o celkem rychlý ray tracer (není ještě úplně vypilovaný), ale používá:
- vysoce optimalizovaný ray-triangle intersection (silně překopaný a modifikovaný barycentrický test, až 2x rychlejší než Moellerův, ale něco předpočítá).
- modifikovaný KD-Tree (postavený v N-log-N čase, teoreticky jej lze použít pro menší dynamické scény)
- dlaždicový rendering (po 32x32 blocích), jedná se však o mono-tracer
- vláknování (jen pozor u ini, počet vláken = 1, nebo násobek 2)
- a pár dalších vychytávek... i když trocha magie s pointery by ještě šla předvést, abych získal nějakou rychlost navíc
Žádné stínování v demu neprovádím (úmyslně), jedná se mi čistě o výkon, jaký můžu vytáhnout z procesorů (nejde o žádný hybridní výpočet, ale čistý mono-tracer).
Zvolil jsem (vzhledem k velikosti souboru) relativně jednoduchý model pro výpočet...
Uvidíme co vymyslím u většího dema (dalšího) ... tam to bude chtít lepší model i nějaké stínování (path tracing? );
32-bit binárka zatím nebude... ani Win32 binárka.
EDIT: Scéna začíná uprostřed scény (implicitně uprostřed koně ), WSAD (pohyb) a šipky (rozhled) by měli kameře trošku pomoct
EDIT2: http://openil.sourceforge.net/ Stránky DevIL - deb balíky by měly být v repozitářích (Ubuntu i Debian je tam mají), rpm balíky si nejsem jistý, ale asi také budou (Suse je myslím má, Fedora, Red hat asi také) ... jinak asi kompilace ze zdrojáků na stránkách, na které odkazuji. _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 11. duben 2011, 10:05:22 Předmět: |
|
|
Core i5 2,53 GHz
Kubuntu linux 64b běžící ve VirtualBoxu pod Windows 7
V tom defaultním okně, na 1 vlákno, to dává kolem 2 MRay/s _________________ Mám strach |
|
Návrat nahoru |
|
 |
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 11. duben 2011, 10:25:10 Předmět: Re: KD-tree mono-tracer |
|
|
Vilem Otte napsal: |
32-bit binárka zatím nebude... ani Win32 binárka |
a Win64? |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 11. duben 2011, 11:27:05 Předmět: |
|
|
citace: |
Core i5 2,53 GHz
Kubuntu linux 64b běžící ve VirtualBoxu pod Windows 7Wink
V tom defaultním okně, na 1 vlákno, to dává kolem 2 MRay/s |
Na Core i5 bys mohl mít i 8 vláken (a to by mohlo být kolem 8, 9 MRays/s), na i7 jsem dneska otestoval, cca 10 - 11 MRays/s.
Mno, vzhledem k tomu, že nemám na žádném PC k dispozici Win64, tak asi ne (možná časem ta Win32 bude). _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 11. duben 2011, 12:58:55 Předmět: |
|
|
Phenom II 955 3.2GHz to dava 7-8MRays/s _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 11. duben 2011, 14:33:29 Předmět: |
|
|
64-bit Linux nevedu z praktických důvodů. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 11. duben 2011, 17:00:56 Předmět: |
|
|
Díky za testy...
Mimochodem Eosie - můžu se zeptat proč přesně? _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 11. duben 2011, 18:28:16 Předmět: |
|
|
ja budu mit urypanou otazku - ve vedlejsim vlakne se prudi VODA ze mu release pro widle nejede poradne ve wine, ale na druhou stranu ty se s releasem pro windows ani nenamahas |
|
Návrat nahoru |
|
 |
Icek
Založen: 29. 07. 2007 Příspěvky: 45 Bydliště: Banov 375
|
Zaslal: 11. duben 2011, 18:41:54 Předmět: |
|
|
Ubuntu 11.04 AMD QL-60 (2x 1,9 Ghz), 4GB Ram 800 Mhz - 1,5 az 2.1 MRays/s |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 11. duben 2011, 19:15:25 Předmět: |
|
|
rezna: Všechno nemusí mít widlácký release. A něco třeba ani nemůže... Teď si rýpnu zase já: Vodovo vlákno není ve správné sekci a tobě je to jedno. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 11. duben 2011, 19:42:17 Předmět: |
|
|
citace: |
ja budu mit urypanou otazku - ve vedlejsim vlakne se prudi VODA ze mu release pro widle nejede poradne ve wine, ale na druhou stranu ty se s releasem pro windows ani nenamahas |
Já se momentálně s widláckým releasem nenamáhám, protože mi tady šlo jen o to, abych viděl cca jak to běhá, než se budu namáhat vydat skutečné demo s ray tracingem a bude relativně brzo (a bude i release pro widle, ale jen 32-bit, jelikož nemám k dispozici 64-bitový windows).
Demo bude mít asi 3 releasy (lnx-32, lnx-64 ... obojí založené na XLib, takže teoreticky poběží i pod BSD a MacOS; dále pak win32).
Další detail je implementace, psát threading pro linuxy a windowsy najednou (navíc 2 verze linuxů - 64 a 32) a snažit se všude vytáhnout stejný výkon není úplně snadné (a nevytáhnete, 64-verze má skutečně vyšší výkon o cca 10 - 20 procent, linux verze má výkonově trochu nad windows verzí - cca 5 procent; jedná se čistě o správu paměti zřejmě).
A v nejbližší době do toho všeho začnu míchat GPU (což bude další zábavná věc, protože NVidia vs AMD, a u obou ještě Windows vs Linux ... dostávat ze všeho dostatečný výkon bude chtít jak na ompf říkáme ... "heavy wizardy and deep magic").
citace: |
Ubuntu 11.04 AMD QL-60 (2x 1,9 Ghz), 4GB Ram 800 Mhz - 1,5 az 2.1 MRays/s |
Díky, ale nějak málo taháš z dvoujádra (jel jsi na 2 vláknech, zkoušel si 4?) ... neměl jsem možnost otestovat na AMD, ale afaik na Phenom II jak zde někdo psal to jelo docela slušně. _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 11. duben 2011, 19:51:29 Předmět: |
|
|
a tu GPU cast chces tahat cez OpenGL alebo zapriahnes nove OpenCL? _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 11. duben 2011, 20:08:55 Předmět: |
|
|
Vilem Otte napsal: |
Mimochodem Eosie - můžu se zeptat proč přesně? |
Potřebuju debuggovat existující hry (dělám driver = knihovnu, která se za běhu linkuje s hrama) a většina uzavřených her je jenom 32-bit. Problém je v tom, že 64-bit gdb (a jeho nadstavby, který používám) neumí debuggovat 32-bit aplikace, dostat z nich backtrace při crashi je skoro nemožný (valgrind jsem radši ani nezkoušel, o sysprof nemluvě). Další problém je, že bych musel mít paralelní build driveru pro obě architektury, tj. 32-bit pro hry a 64-bit pro jiný hry a jiný věci, což prodlužuje kompilaci. Na to se můžu akorát vysrat.
S 32-bit Linuxem tady tyhle věci nemusím řešit. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 11. duben 2011, 20:19:04 Předmět: |
|
|
Upřímně, zkušenosti mám s GLSL gpgpu - třeba takový path tracer v GLSL je docela sranda psát, navíc to vypadá, že GLSL si o něco lépe poradí s kompilací programu (než OpenCL)... na druhou stranu pokoušet se o správu paměti v GLSL je docela sebevražda (jednoduše to je nemožné, takže GLSL asi vypadne).
Další možností je CUDA, s tou ale zkušenosti nemám (ale afaik se od OpenCL tolik neliší). Jenže uzavřít si možnost pro AMD, mého oblíbeného výrobce GPU, si rozhodně nehodlám - takže CUDA také padá.
DirectCompute možnost není (pro mě je podpora linuxu kritická).
OpenCL je tedy asi jedinou možností ... pokud se nepokusím o sebevraždu se správou paměti v GLSL - kde byly docela úspěchy s short-stack KD-restart algoritmem, ale to je u Radeonu X1900 - což je trošku něco jiného než moderní stream procesory - které s short-stackem zase problémy mají...
Prozatím jsem docela drtil výkon z CPU, kde z takového 8-core Xeonu s rychlou 2 GHz RAM, dokážu vytáhnout nějakých 32 MRays/s (což je imho docela dost), tady pro koníka.
Uvidím jak budu úspěšný s GPU (prakticky vezmu program co mám pro CPU a přepíšu jej pod OpenCL pro GPU, dodělám správu paměti a bude hotovo).
Snažím se tak ale dimenzovat svoji technologii do "APU" tedy ať se bude jednat o fyzikální, grafický či herní výpočet, kernel enginu ho přiřadí na zařízení, kde bude momentálně více volno.
Problém je dneska s pamětí, pro statické scény je relativně jednoduché držet v paměti vše vícekrát (1x pro GPU, 1x pro CPU), ale pro dynamické scény je třeba vše updatovat a posílat (buď GPU-CPU, nebo naopak)... a zde jsou zatím problémy (resp. nejsou, ono těch výpočtů zase není tolik). Obecně je ale lepší to spočítat na CPU a poslat na GPU (než to dělat naopak), opačná cesta je však někdy lepší. _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 11. duben 2011, 21:02:03 Předmět: |
|
|
Vilem Otte napsal: |
... ale to je u Radeonu X1900 - což je trošku něco jiného než moderní stream procesory |
Pokud hodláš podporovat tady tento Radeon, tak bych doporučil být hodně opatrný. Ani blbý pole tam neuděláš, pokud indexy do toho pole nejsou konstanty. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
|