 |
|
|
|
Actions
|
|
[ Date Prev][ Date Next][ Thread Prev][ Thread Next][ Date Index][ Thread Index]
Re: [vsipl++] [patch] pwarp
- Subject: Re: [vsipl++] [patch] pwarp
- From: Jules Bergmann <jules@xxxxxxxxxxxxxxxx>
- Date: Thu, 13 Dec 2007 14:12:50 -0500
Stefan Seefeld wrote:
Jules Bergmann wrote:
2) With SDK 3.0 (which we are going to adapt sooner or later anyhow), we
don't have access to that any more, or at least not in that raw form.
You mean ALF 3.0, right? I'm assuming libspe2 doesn't take away
functionality.
What does ALF 3.0 force us to do here?
The ALF that ships with the SDK 3.0 :-) fully encapsulates the libspe2
interface, so we would never actually 'see' the loaded kernel. All we do
is pass various names (char const *) to ALF to allow it to dlopen /
dlsym the appropriate symbols.
Right (now I remember you explained that to me before :)
I'm not even sure we can query these
strings from ALF. (In CML I implemented a 'user-space' analog of the
task-info for caching purposes, as the latter has become an opaque
pointer, and thus doesn't allow us to implement a comparison operation.)
Ok. In that case, we could assume the names are unique.
I.e., the bridge function might look like:
template <typename T>
Choose;
template <>
struct Choose<float>
{
static char const* image() { return "vmul-float"; }
};
... other specializations for other types ...
template <typename T>
...
vmul(...)
{
char const* pgm_name = Choose<T>::image();
... = task_manager.instance(pgm_name)
}
-- Jules
--
Jules Bergmann
CodeSourcery
jules@xxxxxxxxxxxxxxxx
(650) 331-3385 x705
|
|