JOGL GPU affinity

Hi,

I’m wondering if there are any plans (or an existing way) to access/expose the NVIDIA GPU affinity API (see http://www.opengl.org/registry/specs/NV/gpu_affinity.txt).

We’re using shaders (via JOGL) to do server side computation and we have acquired some Tesla boards to test / muck around with. The only problem is that there are no monitor outputs on those boards. This means that on our developer workstations, we have to use a second GPU for display/debugging purposes, but we can’t choose which GPU OpenGL will use. OpenGL is (obviously) selecting the wrong GPU.

If there are no plans to do this in the near future (…I know, it’s a vendor specific interface…), we could possibly do it ourselves and submit a patch (if there is any interest). It’s not high priority for us or anything, it would just be nice to have.

I glanced over the spec … it’s heavily WGL :slight_smile:
However, as you can see in the SPEC and public API,
currently we don’t ‘open’ these - you can see them available under the
developer API … something com.sun..impl.

In general we can just sync the header files and the gluecode is generated,
maybe this would be enough as a first step.
If you can be so kind and send me a unified diff file of
jogl/make/stub_includes/opengl/GL/wglext.h
which reflects your needs and maybe you sync it anyways,
since we haven’t synced it to the latest version.

Then … we may discuss how we open up the platform dependent layer,
if this is necessary. Somehow this is a design flaw IMHO, ie making the GPU
affinity platform dependent … sad thing.
Sure, on X11 you always can have non Xinerama seperated X server,
but this is not always guaranteed or usable.

Hey Sven,

(Great to have met you at GDC09!)

In a related problem, how does one create a GL context using JOGL
in a headless system? That is, none of the windowing system comes
into play because in a system like NV’s Tesla, there’s no video output.

.rex

Sven Goethel - the man who’s efforts originally got me into OpenGL with Java :wink:

I’d be wondering about a similar thing - I’m using the GPU to do computation work rather than graphics work for another project and I’d considered putting 2x graphics cards into one dev system, one cheap one for the display and one powerful one for the computational work.

But like kristopher I’d been puzzled how to instruct JOGL to use the correct GPU.

@PeterB: X11 or Windows ?
X11 - it depends, for a Xinerama multi GPU setup, where your driver binds them
to one virtual device, well, we would need such extension, sure.
Otherwise, you could just say: Use display :1.0 for example.

Windows - the same (Xinerama) - we would need that extension.

Again: Whoever needs it, send me a patch to the glxext.h and wglext.h etc files, thx.

++++

@reguo: Do you mean gfx output on a screen without having x11, wgl, … even no proper egl impl. ?
In this case … you need to impl. your own NEWT NativeWindow thingy … I just added BroadcomEGL for example.
Otherwise - if you talk about GPUGPU stuff … see above :slight_smile:

Hard for me to identify you just by a nickname, but I am pleased to please you :slight_smile: