Ich habe nun seit einiger Zeit eine Nvidia Tesla P4. Diese hat 8 GB VRAM.
Mir war schon mehrfach aufgefallen, dass ich nur ca 7,5 GB davon nutzen konnte, habe das ganze aber einfach auf die üblichen Umrechnungsfaktoren geschoben.
Gestern habe ich dann einmal genauer hingesehen.
ECC bei GPUs
Nicht nur für den normalen Systemspeicher, sondern auch bei GPUs gibt es ECC (Fehlererkennung und -korrektur für Speicher). Das ist bei den Teslas standardmäßig aktiv, da diese Karten ja für professionelle Nutzung gedacht sind. Dadurch wird allerdings ein Teil des GPU-Speichers für die dafür notwendigen Informationen reserviert, auch die GPU-Leistung sinkt dadurch minimal (das Internet redet von grob 10 %, getestet habe ich es selbst nicht).
Das ist für maximale Verfügbarkeit und Verhinderung von Fehlern natürlich sinnvoll, für Zuhause und generell unkritische Anwendungen aber nicht notwendig.
ECC deaktivieren
Nach Installation des Treibers steht das Tool nvidia-smi für Monitoring und Konfiguration der GPU zur Verfügung. Darüber lässt sich auch ECC konfigurieren.
Status auslesen:
nvidia-smi -q
| |
Der ECC-Modus lässt sich nun einfach mittels nvidia-smi --ecc-config=0 deaktivieren.
Nach einem Reboot waren bei mir damit statt vorher 7680 MiB die vollen 8192 MiB verfügbar. Das ist kein riesiger Unterschied, aber reduziert bei größeren Modellen den Anteil, der auf der CPU laufen muss.