Publicerad den Lämna en kommentar

GPU för beräkningar i QGIS

Redan för snart 10 år sedan fördes resonemang om att använda openCL för att snabba upp vissa beräkningar i QGIS. openCL var ganska nytt (2008), så diskussionerna kring just openCL ledde inte någonstans då. openCL handlar framför allt om att använda GPU kärnor parallellt, för att på så sätt kunna använda exempelvis tusentals CUDA kärnor i ett nVidia kort samtidigt. Parallellisering är sedan inte exklusivt för GPU, utan fungerar även för en CPU.

2011 var erfarenheten av att ”parallellisera” processer i QGIS begränsad, men numera så används en dators tillgängliga CPU trådar för flera typer av parallella bearbetningar.

Jag tror inte det är många processer i QGIS som använder flera trådar samtidigt, men QGIS som helhet kan skicka olika beräkningar till olika trådar för att därmed utföra enskilda processer parallellt med andra.

Det som diskuteras nu (https://github.com/qgis/QGIS-Enhancement-Proposals/issues/121) är att använda openCL för en del beräkningar. Beräkningar med openCL är oberoende av hur hårdvaran ser ut. Beräkningar kan utföras av en valfri GPU, så länge den har stöd för openCL så kan den användas. Det spelar därför ingen roll om du har ett nVidiakort, AMD eller ett inbyggt grafikkort i CPU’n. Potentiellt kan detta snabba upp en process med ”väldigt mycket”, speciellt flyttalsberäkningar där en separat GPU är många, många gånger snabbare än en CPU.

Förslaget, som det ser ut, kommer inte att erbjuda openCL för alla typer av beräkningar. Det kommer i stället att vara en resurs som kan användas av enskilda processer, under förutsättning att dessa skrivs för att använda openCL. QGIS måste dessutom vara kompilerat med openCL stöd, vilket eventuellt kommer att kräva en separat QGIS version(?).

Det är sedan inte enbart processer som skulle kunna dra nytta av GPU beräkningar. QGIS har många ganska avancerade stilar, inte minst realtidseffekter, som skulle kunna dra nytta av dessa beräkningar och göra exempelvis ”live” skuggor för komplicerade objekt mycket snabbare att rita ut på skärmen. Sedan skulle jag tro att hela 3D modulen skulle ha otrolig nytta av openCL.

När (om) förslaget byggs in i QGIS så är det sedan upp till övriga utvecklare att ge användaren möjlighet att välja att använda openCL för beräkningar. Om detta sedan är ett aktivt val, eller om den enskilda processen skrivs på ett sådant sätt att den använder openCL om datorn har stöd för det.

Att notera är att Alessandros försök där han testar slope-beräkningar med openCL görs på en dator med en snabb Ryzen CPU och ett enkelt ATI grafikkort. Att trots detta uppnå nästan fyra gånger så snabba beräkningar är lovande för de som på sikt kan bygga en dedikerad Workstation för GIS, med betydligt mer avancerade GPU kort. Just nu är det dock inte aktuellt med stöd för flera GPU kort, men det kanske också kommer så småningom. Men nu skall vi inte gå händelserna i förväg…

Nyhet från Geosupportsystem , orginal inlägg

Lämna ett svar