WebCL - Paralleles Rechnen im Web

 Tutorial
  0: Vorbereitung
  1: Detektor
  2: Platformen und Geräte
  3: Vektoraddition


 Kontakt
 webcl[ät)peter-strohm.de

1 WebCL Detektor

>>>> Direkt zum Beispiel <<<<

Das erste, was wir tun müssen um WebCL-Anwendungen zu schreiben, ist, auf dem Zielsystem zu prüfen, ob alle Vorraussetzungen für WebCL gegeben sind.

Zurzeit (Stand 6.11.2011) ist WebCL in einem frühen experimentellen Stadium. OpenCL 1.1 Treiber sind nicht sehr weit verbreitet und Browserunterstützung existiert nur über Nokias Firefox-Erweiterung (für FF 7.0.1, Windows 32Bit) und eine Implementierung von Samsung für Webkit.

Wenn die entsprechende Hardware jedoch vorhanden ist, OpenCL 1.1 Treiber und Browser-Erweiterung installiert sind kann man bereits als Early-Adopter mit WebCL experimentieren.
Ich verwende die Nokia WebCL extension für Firefox 7 und eine nVidia 9800GT Grafikkarte mit Treiberversion 280.26.

9function detectCL() {
10    var
11     platforms,
12     devices,
13     i;
14    // Wenn die WebCL-Erweiterung installiert ist, existiert das WebCL-Objekt als Element des globalen window-Objekts.
15    if (window.WebCL === undefined) {
16        window.document.getElementById("message").innerHTML = "Dein Browser unterstützt (noch) kein WebCL. " +
17            "Du brauchst einen Treiber für OpenCL 1.1 (z.B. nVidia Grafiktreiber ab Version 280)" +
18            "und die experimentelle WebCL-Erweiterung von Nokia Research.";
19        return false;
20    }
21
22    try {
23        platforms = window.WebCL.getPlatformIDs(); // Alle auf dem System verfügbaren WebCL-Platformen werden werden aufgelistet und im Array platforms abgelegt.
24     devices = []; // Innerhalb einer Platform kann es mehrere Devices geben.
25     // z.B. Platform[0] : nVidia Cuda / OpenCL 1.1
26                     // Device[0] : Geforce 9800GT
27                     // Device[1] : Tesla c2070
28                      // Platform[1] : Intel OpenCL SDK
29                      // Device[0] : Core i7
30     for (i = 0; i < platforms.length; i = i + 1) {
31     devices[i] = platforms[i].getDeviceIDs(window.WebCL.CL_DEVICE_TYPE_ALL);
32     }
33
34     // Falls die Abfragen getPlatformIDs oder getDeviceIDs eine Exception werfen, ist WebCL nicht verfügbar, andernfalls
35        // kann die Erfolgsmeldung ausgegeben werden:    
36        window.document.getElementById("message").innerHTML = 'Testergebnis: Super! WebCL funktioniert auf deinem System!';
37    } catch (e) {
38        window.document.getElementById("message").innerHTML = 'Testergebnis: Die WebCL-Erweiterung scheint in deinem Browser installiert zu sein, aber es wurde kein geei gneter Hardwaretreiber für OpenCL 1.1 gefunden.';
39    }
40}

Kommentieren:

Name
Email Die Emailadresse wird nicht veröffentlicht und nicht weitergegeben
Kommentar

>> Startseite <<   ^ Seitenanfang ^    
Fehler? Kommentare? webcl ([ät)] peter-strohm Punkt de