From 457214bf4a099ba8076cc6ccdbd99ce7a7376fa8 Mon Sep 17 00:00:00 2001 From: "ryan.kuba" Date: Thu, 17 Nov 2022 16:33:15 -0500 Subject: [PATCH] KASM-3512 add support for nvidia GPUS --- index.js | 11 +++++++++-- public/js/index.js | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 13dd401..9fb5de3 100644 --- a/index.js +++ b/index.js @@ -71,9 +71,16 @@ io.on('connection', async function (socket) { } } if (installSettings.forceGpu !== 'disabled') { - let card = installSettings.forceGpu.slice(-1); + let gpu = installSettings.forceGpu.split('|')[0]; + let gpuName = installSettings.forceGpu.split('|')[1]; + let card = gpu.slice(-1); let render = (Number(card) + 128).toString(); - let baseRun = JSON.parse('{"environment":{"KASM_EGL_CARD":"/dev/dri/card' + card + '","KASM_RENDERD":"/dev/dri/renderD' + render + '"},"devices":["/dev/dri/card' + card + ':/dev/dri/card' + card + ':rwm","/dev/dri/renderD' + render + ':/dev/dri/renderD' + render + ':rwm"]}'); + // Handle NVIDIA Gpus + if (gpuName.indexOf('NVIDIA') !== -1) { + let baseRun = JSON.parse('{"environment":{"KASM_EGL_CARD":"/dev/dri/card' + card + '","KASM_RENDERD":"/dev/dri/renderD' + render + '"},"devices":["/dev/dri/card' + card + ':/dev/dri/card' + card + ':rwm","/dev/dri/renderD' + render + ':/dev/dri/renderD' + render + ':rwm"],"device_requests":[{"driver": "","count": -1,"device_ids": null,"capabilities":[["gpu"]],"options":{}}]}'); + } else { + let baseRun = JSON.parse('{"environment":{"KASM_EGL_CARD":"/dev/dri/card' + card + '","KASM_RENDERD":"/dev/dri/renderD' + render + '"},"devices":["/dev/dri/card' + card + ':/dev/dri/card' + card + ':rwm","/dev/dri/renderD' + render + ':/dev/dri/renderD' + render + ':rwm"]}'); + } let baseExec = JSON.parse('{"first_launch":{"user":"root","cmd": "bash -c \'chown -R kasm-user:kasm-user /dev/dri/*\'"}}'); for await (let image of Object.keys(images.images)) { if (imagesD.images[image]['run_config']) { diff --git a/public/js/index.js b/public/js/index.js index f22ce80..52fd96a 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -199,7 +199,7 @@ async function pickSettings() { ]); let gpuOptions = [$('