By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,898 Members | 2,022 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,898 IT Pros & Developers. It's quick & easy.

can a hardware programmable card do this?

P: n/a

We have a particular software project where a minority of the
function calls are taking up a majority of the cpu time.
(they do a lot of geometric, trig and other functions related
to vectors corresponding to tracks in 3d space)

We think there's not much more that can be done to speed
these functions up on the computer we have (or can have).
The question is, aren't there available now hardware cards
that you can load with particular code (that would correspond to
these functions) so that the function would be processed entirely
in hardware? The card would have a software toolkit so that
when you compile your project you could tell it to take
functions X,Y,and Z and install them on the card and then
install the special function API links from the normal software
to the card. When the program is started up, it would load the
card with the code (this way you could continue developing those
functions and then conveniently load them to hardware for speed)
for those functions. As the program runs, when it calls
functionX(arg1, arg2, etc) it would really pass the functions
information across the bus to the card, then the result back
to the calling function just like it never left software.

That seems a lot to ask but it seems I've heard that's possible?

Mark

Jul 23 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Mark wrote:
We have a particular software project where a minority of the
function calls are taking up a majority of the cpu time.
(they do a lot of geometric, trig and other functions related
to vectors corresponding to tracks in 3d space)

We think there's not much more that can be done to speed
these functions up on the computer we have (or can have).
I wonder if you unnecessarily limit yourself to some particular subset
of available computers...
The question is, aren't there available now hardware cards
that you can load with particular code (that would correspond to
these functions) so that the function would be processed entirely
in hardware?
If you're looking to parallelize your calculations, then, yes, there
are two approaches I've seen: special hardware and more separate CPUs
that can execute your threads. Special hardware is not the best approach
in many aspects, but in some rare cases it could be just what you need.
I would like to emphasize "rare".

Parallelizing your calculations on several CPUs using threads or fibres
is much simpler, and much more accessible to a regular developer.
The card would have a software toolkit so that
when you compile your project you could tell it to take
functions X,Y,and Z and install them on the card and then
install the special function API links from the normal software
to the card. When the program is started up, it would load the
card with the code (this way you could continue developing those
functions and then conveniently load them to hardware for speed)
for those functions. As the program runs, when it calls functionX(arg1,
arg2, etc) it would really pass the functions
information across the bus to the card, then the result back
to the calling function just like it never left software.

That seems a lot to ask but it seems I've heard that's possible?


I've heard it too. This doesn't seem like a language problem, though.
You need to find a better newsgroup to ask about this. Something
related to microprocessors, probably. Or hardware. Or the platform.
Try asking for directions in comp.programming.

V
Jul 23 '05 #2

P: n/a
This is not topical here.

However, whether this can be done depends on what the function does. The GPU
is not (yet) a general purpose computing device. Have a look at
http://www.gpgpu.com/.

Ares Lagae

Jul 23 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.