Šta je novo?

Fractal benchmark v0.1

  • Začetnik teme Začetnik teme yooyo
  • Datum pokretanja Datum pokretanja

yooyo

Čuven
VIP član
Učlanjen(a)
28.06.2005
Poruke
10,877
Poena
730
Moja oprema  
Pristup internetu
  1. Optički internet
Malo sam se zezao ovih dana sa novom igračkom (HP 8710w) i napravio sam jedan mali benchmark za grafičke kartice. Program računa Mandelbrotov fraktal u potpunosti na GPU. Urađen je u OpenGL-u sa GLSL shaderima i trebalo bi da radi na svim karticama koje podržavaju loop i branching u shaderima. Takođe trebalo bi da radi i na XP-u i na Visti.

Možete da se šetate po fraktalu korišćenjem točkića na mišu za zoom i levi taster miša za pan. Alt+Enter menja windowed/fullscreen mode. Fullscreen je u rezoluciji desktopa. Num+/Num- menja broj iteracija. Više iteracija donosi više detalja ali i utiče na pad performansi.

Na tastere 1-5 možete da pogledate jedan od 5 predefinisanih pogleda na fraktal.

Kod mene na Quadro 1600M (fw 169.09), rezultati po pogledima su:
P1: 19.7 fps
P2: 28.1 fps
P3: 28.2 fps
P4: 107.5 fps
P5: 23.7 fps

Test bi trebalo da je nezavistan od CPU, ali bih voleo da se to zaista pokaže. Dakle očekujem iste rezultate na istim karticama nezavisno od procesora.

Planiram da uradim i vertex shader test i geometry shader test takođe sa fraktalima.

Poruku sam okačio u ovom forumu jer će u forumu programiranje proći neprimećeno.
 

Prilozi

Poslednja izmena:
Nece da mi radi i izbaca mi poruku u log sledeceg sadrzaja
[ThreadID]:FileName.ext:comment

[+]: Company : NVIDIA Corporation
[+]: FileDescription: NVIDIA Compatible OpenGL ICD
[+]: FileName : C:\WINDOWS\system32\nvoglnt.dll
[+]: FileVersion : 6.14.10.8471
[+]: PixelFormat = 8
[+]: Kreiran je 3D font
[+]: CGDIFont::CreateFont Tahoma recomended texture size 256 x 256
[!]: muiSkin::Init: Bad texture file ./Data/Textures/GUI/skin1.tga
[+]: CGDIFont::CreateFont Tahoma recomended texture size 512 x 512
[00000200]:GLSLProgramObject.cpp:Compiling
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();

}



[00000200]:GLSLProgramObject.cpp:Compiling
uniform float MaxIterations;
uniform sampler1D ramp;

void main(void)
{
vec2 ri = gl_TexCoord[0].xy;
vec2 Cri = ri;

float r2 = 0.0;
float iter;

for (iter = 0.0; iter < MaxIterations && r2 < 4.0; ++iter)
{
float tempreal = ri.x;
ri.x = (tempreal * tempreal) - (ri.y * ri.y) + Cri.x;
ri.y = 2.0 * tempreal * ri.y + Cri.y;
r2 = dot(ri,ri);
}

vec3 color;

if (r2 < 4.0) color = vec4(0.5,0,0,1);
else color = texture1D(ramp, iter/MaxIterations).rgb;

gl_FragColor = vec4 (color, 1.0);
}



[00000200]:GLSLProgramObject.cpp:glCompileShaderARB FAIL: ./data/shaders/mandelbrot.frag
[00000200]:GLSLProgramObject.cpp:
(22) : error C1035: assignment of incompatible types

[00000200]:GLSLProgramObject.cpp:Can't bind program object mandelbrot
[00000200]:GLSLProgramObject.cpp:No such uniform ramp
[00000200]:GLSLProgramObject.cpp:.\src\OpenGL\GLSLProgramObject.cpp, 284, invalid operation
[00000200]:GLSLProgramObject.cpp:No such uniform MaxIterations
[00000200]:GLSLProgramObject.cpp:.\src\OpenGL\GLSLProgramObject.cpp, 256, invalid operation
[00000200]:GLSLProgramObject.cpp:Can't bind program object mandelbrot
[00000200]:GLSLProgramObject.cpp:No such uniform ramp
[00000200]:GLSLProgramObject.cpp:.\src\OpenGL\GLSLProgramObject.cpp, 284, invalid operation
 
Poslednja izmena:
ovde je bag
vec3 color;

if (r2 < 4.0)
color = vec4(0.5,0,0,1); <---------------- treba vec3 umesto vec4 i da se izbaci ,1
else
color = texture1D(ramp, iter/MaxIterations).rgb;

+ mi javlja neko ****** oko ramp pa sam ga izbrisao

if (r2 < 4.0) color = vec3(0.5,0,0);
else color = vec3(iter/MaxIterations);
i radi ok 🙂

5-6 fps ostalo 1-2 🙁

P.S.
Sigurno bi ga bi primetio i da si ga tamo okacio 🙂
 
Poslednja izmena:
Ups.. vidi stvarno.. 🙁

Ispravio sam grešku i ponovo uploadovao program u prvoj poruci.
Skini prog ponovo pa probaj. Nadam se da ćeš imati vise sreće...

Inače kompajler mi nije prijavio grešku.. nije čak ni dao ni upozorenje...

@genuine:
Koja je grafička u pitanju?
 

Prilozi

  • Mandelbrot-1.jpg
    Mandelbrot-1.jpg
    248.4 KB · Pregleda: 118
  • Mandelbrot-2.jpg
    Mandelbrot-2.jpg
    184.1 KB · Pregleda: 114
Poslednja izmena:
Sad je ok...
na Go 7600 je
5.2
1
1
4.8
2.5


ali kad mu uradim ovo
MaxIterations * 0.3 frejmaza drasticno skace
na 13 mi je prvi test

p.s.
Dobre shejdere ti ima ta igracka 🙂

p.s.2
Mogo bi da pixel shader-e da ubacis matematicki benchmark ko ovaj, pa onda recimo texture benchmark da uzima izvore iz vise tekstura razlicitih velicina da se vidi kakva je veza GPU<-GMEM i sl. stvari da bi se procenili razni apsekti grafickih
 
Poslednja izmena:
Quadro 1600M == 8600GTS
 
Mnogo varira FPS, ne znam koji da napišem...
Totalno ubije mašinu dok radi, iako procesor nije na 100%.
 
Na ATI X1800XL AIW u fullscreenu (1280x1024):

1 : 3.8
2 : 5.2
3 : 5.2
4 : 19.7
5 : 4.7

Radi samo sto mnogo optereti masinu i cekam po nekoliko sekundi da se prebaci izmedju pogleda.

Jedino sam primetio da u onom prozoru pod mnogo stavki pise FAIL. Nemam pojma o programiranju pa ti prebacujem sve sto pise, mozda ti pomogne :

[+]: Company : ATI Technologies Inc.
[+]: FileDescription: ATI OpenGL driver
[+]: FileName : C:\WINDOWS\system32\atioglxx.dll.dll
[+]: FileVersion : 6.14.10.7057
[+]: PixelFormat = 5

FAIL... GL_ATI_shader_texture_lod
FAIL... GL_ATI_texture_compression_3dc
FAIL... GL_ATIX_texture_env_combine3
FAIL... GL_ATIX_texture_env_route
FAIL... GL_ATIX_vertex_shader_output_point_size
FAIL... GL_EXT_texgen_reflection
FAIL... GL_EXT_texture_edge_clamp
FAIL... GL_EXT_texture_rectangle
FAIL... GL_SGIS_multitexture
FAIL... GL_SUN_multi_draw_arrays
FAIL... GL_WIN_swap_hint
FAIL... WGL_EXT_extensions_string
FAIL... WGL_EXT_swap_control
FAIL... WGL_ATI_render_texture_rectangle [+]: Kreiran je 3D font
[+]: CGDIFont::CreateFont Tahoma recomended texture size 256 x 256
[!]: muiSkin::Init: Bad texture file ./Data/Textures/GUI/skin1.tga
[+]: CGDIFont::CreateFont Tahoma recomended texture size 512 x 512
Compiling
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();

}



Compiling
uniform float MaxIterations;
uniform sampler1D ramp;

void main(void)
{
vec2 ri = gl_TexCoord[0].xy;
vec2 Cri = ri;

float r2 = 0.0;
float iter;

for (iter = 0.0; iter < MaxIterations && r2 < 4.0; ++iter)
{
float tempreal = ri.x;
ri.x = (tempreal * tempreal) - (ri.y * ri.y) + Cri.x;
ri.y = 2.0 * tempreal * ri.y + Cri.y;
r2 = dot(ri,ri);
}

vec3 color;

if (r2 < 4.0) color = vec3(0.5,0,0);
else color = texture1D(ramp, iter/MaxIterations).rgb;

gl_FragColor = vec4 (color, 1.0);
}



Linking:
.. ./data/shaders/mandelbrot.vert
.. ./data/shaders/mandelbrot.frag
Uniform MaxIterations at location 0
Uniform gl_ModelViewProjectionMatrix at location -1
Uniform ramp at location 2
 
@Dandy:
Koja je graficka u pitanju? Test i ne treba da opterećuje procesor..

@resler:
Ta FAIL upozorenja govore da neki hw features nisu podržani na tvojoj kartici.

@all:
Obavezno okačite i koja je grafička u pitanju, verziju drivera i OS.
 
Saphire ATI X1600 pro 256 ddr2 vista aero upaljen catalist 7.10

1. 6.14
2. 6.13
3. 6.06
4. 23.32
5. 5.15
 
7950GT 512MB, XPSP2, drajveri 169.09

1. 10.8
2. 14.3
3. 12.7
4. 53.0
5. 11.5
 
@Dandy:
Koja je graficka u pitanju? Test i ne treba da opterećuje procesor..
Ona 2600XT iz mojih podataka o konfiguraciji.
FPS varira baš značajno, po 5-6 FPS-a. Ne znam koji da računam, da izvlačim neku sredinu između najvećeg i najmanjeg?
Znam da ne treba da opterećuje procesor, mada ni njegovo zauzeće nije zanemarljivo. Baš zato mi je čudno što mi je windows dok radi ovaj test jaaaako usporen. Kada kliknem na drugi prozor treba mu sekundu dve da dobije fokus.
 
Najtezi test je da se zumirate bilo gde u crveno podrucje. Tada ce kartica da izvrsi maksimalan broj iteracija za svaki pixel. Konkretno kod mene radi 10-11 fps sa 256 iteracija. U principu... 2x veci broj iteracija znaci 2x manji fps.

Razlog zasto se ceo windows koci je zbog toga sto driver dugo radi posao pre nego sto vrati kontrolu OS-u. Zbog toga je najvise procesorskog vremena potroseno u kernelu.
 
Poslednja izmena:
nVidia 8800GTS 320MB(default klokovi, 169.09, XP SP2) full screen (1440*900):

1) 33
2) 47
3) 47
4) 177
5) 40

Overclock na 650/900 (sa 513/792):

1) 42
2) 60
3) 60
4) 188
5) 51
 
Poslednja izmena:
EVGA 8800GTX, 169.09 beta, XP SP2, ostatak vidi u "Moja masina" ako te zanima:

1. 462 FPS
2. 121 FPS
3. 122 FPS
4. 450 FPS
5. 102 FPS

Za #1 je broj iteracija 100, a za ostale 256.

Maksimizirao sam prozor na 1024x768 (to mi je aktivna rezolucija) posto sam video da se fPS menja u zavisnosti od toga da li je je ceo prikazan.

Imas bug sa zumiranjem, kad zumiras skoro do kraja pikseli pocinju da se razvlace u sirinu. U zavisnosti od toga sta uradis dalje mogu se desiti dve stvari:

1. Ako zumiras skroz do kraja dobijes opet proporcionalne piksele ali zoom out vise ne radi
2. Ako pocnes da radis zoom out pre nego sto se izjednace bivaju sve sabijeniji po vertikali, odnosno vertikala i horizontala se ne skalira sa istim faktorom

Zauzece procesora je ~100% ali daleko od toga da bilo sta koci, normalno radi sistem kod mene. To ovi sa slabijim procesorima imaju problema izgleda :d

E da, ako ti nesto znaci, u drajveru je podesen slajder na quality (iskljucene optimizacije), texture clamp = OpenGL i negative LOD = clamp.
 
Poslednja izmena:
Masina iz potpisa. Drajver 163.71.
P1 = 4.2
P2 = 6.1
P3 = 5.3
P4 = 21.3
P5 = 4.9

Naveden je prosecna vrednost za framerate.

Stvarno ima problema kod odlaska u max zum i povratka iz istog, ali se po promeni pogleda sve vraca u normalu.

Evo i primera.
 

Prilozi

  • fraktal.jpg
    fraktal.jpg
    70.6 KB · Pregleda: 57
  • fraktal1.jpg
    fraktal1.jpg
    36.1 KB · Pregleda: 56
  • fraktal2.jpg
    fraktal2.jpg
    310.6 KB · Pregleda: 62
Poslednja izmena:
Max zoom izaziva numericku nepreciznost. To se i kod mene desava i to je normalno.
Sredicu problem sa razvlacenjem pixela u sledecoj verziji.

U celom shaderu ima samo 1 (opcioni) texture fetch.. ovo je 99.9% math benchmark.

Sada razmisljam kako da primenim fraktal na geometriju... npr..da generisem fraktalnu geometriju ili da modifikujem neki mesh pomocu fraktala.
 
Poslednja izmena:
8800gts 320, fw169.09, vista x64, 1280x1024

256 iteracija
1. prozor 52, fullscreen 33
2. 74, 47
3. 74, 47
4. 266, 179
5. 62, 40
 
7900GTO(default),Fw163.71,WinXP,1280x1024:

1: 7
2: 9
3: 8
4: 35
5: 7

Vidim da Jera ima dosta veci FPS a imamo slicnu graficku,da nije do drajvera?
 
Poslednja izmena:
@topuz:
tek sam sad video da si okacio rezultate u fullscreen (1440x900). Da li mozes da okacis 1280x1024?

@Ostali:
Pitanje za sve... Da li da smanjim test rezoluciju na 1024x768 jer vidim da neki nemogu da testiraju 1280x1024?
 
meni na laptop-u nije
1280x800 i je rez
tako da je najbolje 1024x768

@yooyo
El moze za potrebe benchmarka da se taj mandelbrot rendira u neku teksturu proizvoljne velicine kako ne bi uticale stvari kao velicina prozora i sl?
 
Poslednja izmena:
Samo sam pokrenuo, nista nisam cackao i menjao.

1. 47,29
2. 12,98
3. 11,29
4. 43,34
5. 09,69

Sad sam skapirao, stavio sam rez 1280x1024 i maximizovao prozor, da popuni ceo ekran

1. 6,68
2. 7,64
3. 7,64
4. 30,08
5. 7,01
 
Poslednja izmena:
Pozz svima.. novi update ce biti ovih dana.. Trenutno sam daleko od broadband interneta, pa cu okaciti novu verziju za 3-4 dana kada dodjem kuci.

Hvala svima na testovima, primedbama i predlozima.
 
Evo izmene. Prvi put je probano na NX7600GS (500MHz Core, 900MHz Mem).
Sada je probano sa PX8600GT Extreme i rezultati su sledeci:

U prozoru

1. 21.7
2. 30.7
3. 30.7
4. 116.6
5. 25.9

Full screen (1600x1200)

1. 9.5
2. 12.9
3. 13
4. 48.8
5. 11.2
 
P1 16,7
P2 24,1
P3 23,7
P4 91,6
P5 19,7

default u prozoru...Takodje mi fali brdo ekstenzija, moguce da nvidia zbog toga ima bolji fps ?!

Odziv sistema je katastrofan 🙂 Mislim radi sve ali usporeno, zauzece oba jezgra skupa je ~54%
 
Na vidiji su 96-100% iskoriscenje procesora. Verovatno da imaju bolju multithread podrsku. Na Gainward-u 8600GT GLH:
1. 28 FPS
2. 39 FPS
3. 39 FPS
4. 145 FPS
5. 33 FPS
 
Poslednja izmena:
Yooyo,pitanjce za tebe🙂(ili bilo koga ko poznaje materiju).
Kazes da ovaj testic u potpunosti iskoristava GPU,to pretpostavljam znaci da ako imam slican rezultat kao drugi korisnici ove karte,ne moram da brinem za ispravnost grafickog procesora,jel'tako?
Sta je sa memorijom,da li se ona makar malo angazuje u "fractal benchmarku"?
 
Poslednja izmena:
Nazad
Vrh Dno