[RC5] cores for GPUs ?

Slawek sgp at telsatgp.com.pl
Sat Aug 14 05:59:17 EDT 2004

In message to "D.net Discussion" <rc5 at lists.distributed.net> sent Fri, 13
Aug 2004 21:17:13 -0500 you wrote:

 JC> It's in the FAQ: http://n0cgi.distributed.net/faq/cache/165.html

 JC> Docs (http://www.distributed.net/docs/) ->
 JC>   FAQ-o-Matic ->
 JC>     Client Software ->
 JC>       Porting the client, and common port/feature requests ->
 JC>         What about a core for the CPUs in video accelerator cards?

I've read that and I'd say that most point are void at least in DirectX +
.NET Framework case under Windows.

1) Current interface enables one to write a program in a special language
that is JIT compiled for installed video card (and optimised for this
specific one).
2) The operation is possible for userland programs, it doesn't require
Administrator's privileges not to say about kernel level programming.
3) The program is compiled for installed video card, programmer doesn't need
to know video card's internals. Obviously different video cards may be
better in different things, but there are only two main types: ATI & nVidia.
Writing two cores don't look like too much.
4) Video card driver automatically executes your code, you don't need to
circumvent that and fight with original driver.
5) As far as I know current video cards have more power than SIMD extensions
of any available PC processor. I was able to write a core for SSE2 that is
about 60% as fast as my classic Pentium 4 core (cannot work at the same
time). Working with video card should be possible in the same time that
working in CPU(s) and should be even faster. As far as I know video cards
doesn't support SIMD bit shifts that would use different shift count for
different data sets, but that's just the same as in SSE2.

Those are problem that I see at the moment:
1) This looks like something Windows specific. It might be possible to port
to Unix/Linux world as soon as MONO project would support video acceleration
(probably not in the near future).
2) This would need .NET Framework installed. .NET Framework shows that it's
installed in User Agent string. Just check in your web server's logs how
many people has this installed (I'd expect about 10-20%)
2) As far as I know there are no priorities supported for video card
programs. It may be problem or not (pausing if *any* other DirectX program
is running would be probably fine, and it should be possible to detect

Slawek Piotrowski

More information about the rc5 mailing list