spacer
spacer
spacer
What is new?
Latest Website Changes
Latest Source Code Changes
Developer Blog
New:Tips & Tricks on Twitter

GPU Service Discovery

Back to top Questions? Impressum Changed Search

About

Features

Applications

Documentation

User

Developer

Research

Release Notes

Performance Studies

Compatibility Matrix

Parallel GL FAQ

Support

Gallery

Downloads

News

Events

Contributions

Survey

GPU-SD is a library and daemon for the discovery and announcement of graphics processing units using ZeroConf. It enables auto-configuration of ad-hoc GPU clusters and multi-GPU machines.

The source code is hosted on github and documented here.

Modules

The GPU-SD library uses modules which implement discovery using different protocols. Each module is a separate library, which can be selectively linked by applications, limiting dependencies. Currently available are:

VirtualGL

When an application is run through VirtualGL, gpu-sd detects this and sets the FLAG_VIRTUALGL on all local GPUs, and additionally FLAG_VIRTUALGL_DISPLAY on the GPU used by VirtualGL for redirection. This is only implemented for GLX so far (more info).

Daemon

The daemon uses all available local modules to query local GPUs and announces them using ZeroConf on the local network. The service type name is "_gpu-sd". The dns_sd discovery module gathers the information announced by all daemons on the local network. The following protocol is used by the daemon:

Downloads

Version 1.4 release notes:

Version 1.0.3 release notes:

Compilation

The build system is using CMake, with a default Makefile to trigger CMake and compilation. Typing 'make' should suffice. A ZeroConf implementation is required for the dns_sd module and the daemon. On Mac OS X it is part of the operating system, on Linux AVAHI is tested ('sudo apt-get install libavahi-compat-libdnssd-dev' on Ubuntu). If no ZeroConf implementation is found, GPU-SD is only compiled with local discovery modules.

Usage

An application can use the discovery by linking the relevant module libraries, instantiation the modules in the code and then quering the instantiated modules. The following will find all remote and the local GPUs on Windows:

gpusd::wgl::Module::use();
gpusd::dns_sd::Module::use();
const gpusd::GPUInfos& infos = gpusd::Module::discoverGPUs();

Filters are chainable functors which can be passed to the query function to discard information. The following filters are provided:

Projects using GPU-SD

spacer
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.