Werbung
Ramdisks sind ein beliebter Weg zumindest etwas freien Arbeitsspeicher für spezielle Anwendungen zu verwenden. Großer Vorteil dieses Speicher ist die simple Tatsache, dass diese deutlich schneller als jede SSD sind. Statt des Arbeitsspeichers wird beim VRAMFS mit Hilfe eines Linux-Kernels, FUSE und OpenCL der Speicher der Grafikkarte verwendet. Je nach Anbindung der Grafikkarte über das PCI-Express-Interface sind damit Lese- und Schreibraten von 2 GB pro Sekunde möglich. Schnelle, per PCI-Express angebundene SSDs kommen auf 1.200 / 800 MB pro Sekunde. Bei per SATA angebundenen Flash-Speichern ist derzeit bei 500 / 500 MB das Ende der Fahnenstange erreicht. An dieser Stelle wollen wir einfach nur Server-SSDs benennen, die ebenfalls per PCI-Express angebunden sind und bereits heute Datenraten von 6,7 GB pro Sekunde für das Lesen und 4,4 GB pro Sekunde für das Schreiben von Daten erreichen. Der Preis liegt hier aber bereits im fünfstelligen Bereich.
Nun zurück zum VRAMFS: Diese befinden sich noch in einem recht frühen Entwicklungsstadium. Bei Grafikkarten, die im Consumer-Segment bereits 4 oder 6 GB Grafikspeicher erreichen, wird die Verwendung von VRAMFS in Zukunft aber immer rentabler und bis dahin wollen die Entwickler auch die Geschwindigkeit noch erhöhen. Die Datenrate von etwa 2 GB pro Sekunde soll sich noch steigern lassen, zumal im Hinblick auf bis zu 6 GB pro Sekunde über klassische Ramdisks noch kein echter Vorteil zu erkennen ist. Das Bandbreitenlimit von PCI-Express ist das Ziel. Bei PCI-Express 3.0 und den vollen 16 Lanes wären dies 15,754 GB pro Sekunde, beim kommenden PCI-Express 4.0 sogar schon 31,508 GB pro Sekunde.
Als Tool kommt für den Aufbau eines VRAMFS ein Linux mit FUSE zum Einsatz. Das Linux verwendet einen Userspace, der außerhalb des Kernels auf das externe Dateisystem zugreifen kann. Die Grafikkarte muss mindestens OpenCL 1.1 unterstützen. FUSE dient dabei nur dem Umgang mit dem Dateisystem, während die eigentliche Zugriffe auf den Speicher mittels der OpenCL-Schnittstelle ausgeführt werden. Schreibzugriffe können asynchron erfolgen, währen das Lesen von Daten synchron ausgeführt wird.
Wer sich einmal an einem VRAMFS versuchen möchte, der findet den dazugehörigen Code bei Github unter MIT-Lizenz.