POV-Ray : Newsgroups : povray.off-topic : GPU rendering Server Time
7 Sep 2024 13:24:27 EDT (-0400)
  GPU rendering (Message 31 to 34 of 34)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: scott
Subject: Re: GPU rendering [98K]
Date: 23 Jul 2008 06:59:51
Message: <48870f27@news.povray.org>
> OK, so for anybody who knows about such things... Would it be feasible to 
> render an Iterated Function System image using a GPU? And would it be any 
> faster than using the CPU?

See attached image. That spike in the right CPU chart was where I started 
the program.

I'm using the standard fern algorithm that's on the wikipedia page about 
IFS.

Speed: 23.2 million iterations per second (512x512 points in parallel per 
frame at 88 fps)

This is on an nVidia FX1700, if I get time I'll try it on my FX7900 tonight, 
should be significantly faster.

I don't know how this compares to how fast a CPU would be, if I get time 
later I will try out the same on the CPU for comparison.

The hardest bit was actually getting a good random number generator inside 
the pixel shader.  What I ended up doing was to generate a big texture full 
of random numbers at the start of the code, then in the pixel shader it 
generates an xy coord based on a number of things and looks up the value in 
the random texture at that position.  Seems to work well, because believe 
me, if your random number generator is just a little bit wonky, the fern 
doesn't look very nice at all!


Post a reply to this message


Attachments:
Download 'image1.jpg' (99 KB)

Preview of image 'image1.jpg'
image1.jpg


 

From: Invisible
Subject: Re: GPU rendering [98K]
Date: 23 Jul 2008 07:16:18
Message: <48871302$1@news.povray.org>
scott wrote:

> See attached image. That spike in the right CPU chart was where I 
> started the program.

Sweet! That looks pretty awesome.

Next step: realtime animation. ;-)

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

From: scott
Subject: Re: GPU rendering [98K]
Date: 24 Jul 2008 03:38:07
Message: <4888315f$1@news.povray.org>
> Speed: 23.2 million iterations per second (512x512 points in parallel per
> frame at 88 fps)
>
> This is on an nVidia FX1700, if I get time I'll try it on my FX7900 
> tonight,
> should be significantly faster.

OK so my FX7900 wasn't that much faster (37 million per second), despite the 
specs indicating about 5x the pixel throughput.  The speed bottleneck is 
obviously somewhere else in this code then, probably in the texture lookup 
in the vertex shader, I guess that isn't very optimised yet.  If I had a 
DX10 card I could use a geometry shader to cut the number of texture lookups 
and vertex shader calls by a factor of 4, that would definitely speed things 
up significantly.

> I don't know how this compares to how fast a CPU would be, if I get time
> later I will try out the same on the CPU for comparison.

Using a single core of an Intel E6400 I get 11 million iterations per second 
(C++, but with no graphics).

Also it took me like 5 minutes to write the CPU code from scratch, but 
several hours to get the GPU code working correctly!


Post a reply to this message

From: Invisible
Subject: Re: GPU rendering [98K]
Date: 24 Jul 2008 03:52:47
Message: <488834cf$1@news.povray.org>
>> Speed: 23.2 million iterations per second (512x512 points in parallel per
>> frame at 88 fps)
>>
>> This is on an nVidia FX1700, if I get time I'll try it on my FX7900 
>> tonight,
>> should be significantly faster.
> 
> OK so my FX7900 wasn't that much faster (37 million per second), despite 
> the specs indicating about 5x the pixel throughput.  The speed 
> bottleneck is obviously somewhere else in this code then, probably in 
> the texture lookup in the vertex shader, I guess that isn't very 
> optimised yet.  If I had a DX10 card I could use a geometry shader to 
> cut the number of texture lookups and vertex shader calls by a factor of 
> 4, that would definitely speed things up significantly.

Ooo... profiling GPU code... THAT SOUNDS FUN! o_O

>> I don't know how this compares to how fast a CPU would be, if I get time
>> later I will try out the same on the CPU for comparison.
> 
> Using a single core of an Intel E6400 I get 11 million iterations per 
> second (C++, but with no graphics).

Mmm, OK.

> Also it took me like 5 minutes to write the CPU code from scratch, but 
> several hours to get the GPU code working correctly!

Heh. All hail the day when GHC has a GPU backend! ;-)

(Mind you, apparently Roman Cheplyaka is working on a physics engine 
using Data Parallel Haskell as a Google SoC project. Apparently rigid 
body collision is working already...)

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.