Zmiana podstawowej karty graficznej do celów przetwarzania NERF.

Zmiana w konfiguracji stacji roboczej związana jest z przetwarzaniem neuronowych pól radiacyjnych i została podyktowana względami praktycznymi. Dotychczasowa podstawowa karta graficzna do wyświetlania grafiki to Quadro P400. Zgodnie z wpisem do wykonania modelu NERF potrzebne jest wstępne przetwarzanie celem uzyskania parametrów kamery i ujęć, zapisanych w formacie JSON.

{
  "camera_angle_x": 0.7481849417937728,
  "camera_angle_y": 1.2193576119562444,
  "fl_x": 1375.52,
  "fl_y": 1374.49,
  "k1": 0.0578421,
  "k2": -0.0805099,
  "p1": -0.000980296,
  "p2": 0.00015575,
  "cx": 554.558,
  "cy": 965.268,
  "w": 1080.0,
  "h": 1920.0,
  "aabb_scale": 4,
  "frames": [
    {
      "file_path": "images/0001.jpg",
      "sharpness": 31.752987436300323,
      "transform_matrix": [
        [
          0.8926439112348871,
          0.08799600283226543,
          0.4420900262071262,
          3.168359405609479
        ],
        [
          0.4464189982715247,
          -0.03675452191179031,
          -0.8940689141475064,
          -5.4794898611466945
        ],
        [
          -0.062425682580756266,
          0.995442519072023,
          -0.07209178487538156,
          -0.9791660699008925
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ]
    },
    {
      "file_path": "images/0002.jpg",
                                    ...

Nerfstudio używa do tego aplikacji COLMAP. Ze względu na to, iż program COLMAP nie potrafi używać do przetwarzania karty Tesli P40 przetwarzanie musi odbyć się na podstawowej karcie graficznej P400. Quadro P400 ma zbyt mało rdzeni CUDA i przetwarzanie transformat dla 300 ~ 400 klatek zajmuje 5 ~ 6 godzin co jest nieakceptowalnym wynikiem. Z tego względu przetwarzanie z użyciem COLMAP wykonywane było na laptopie DELL G15 (Ryzen 5600H, RTX 3050) co trwało 1 ~ 1.5 godziny a następnie pliki przenoszone były na stację roboczą celem wytrenowania modelu Teslą P40. Zdecydowano się na wymianę karty graficznej w stacji roboczej, dzięki temu przetwarzanie będzie odbywać się na jednej stacji roboczej bez przenoszenia plików.

Zakupiono do tego celu kartę graficzną NVIDIA RTX A2000 6 GB ze względu na następujące cechy:

Niska cena tj. 950 zł.
Brak zewnętrznego zasilania. Karta pobiera prąd z płyty głównej, dzięki czemu nie trzeba stosować konektora z zasilacza (aktualnie brak dostępnych wolnych konektorów).
Energooszczędny profil, max 70 W.
Zgodność sterowników (R535 U5 (537.13)  WHQL) z TESLA P40 (537.13  WHQL) i CUDA 12.2. Karta używa takich samych sterowników jak poprzednia karta P400, po instalacji nie było wymagane przeinstalowanie sterowników.
Nowsza architektura Ampere, więcej rdzeni CUDA, większa wydajność obliczeniowa.

Porównanie parametrów kart:

Testy i benchmark.

Czasy przetwarzania dla około 311 obrazów kształtują się następująco:

RTX A2000 + Xeon® E5-1620 v3
1 ~ 1.5 godziny

RTX 3050 + Ryzen 5600H
1 ~ 1.5 godziny

Czasy przetwarzania dla laptopa i stacji roboczej po wymianie karty graficznej są wyrównane i może to wywrzeć złudne przeświadczenie, iż A2000 ma podobną wydajność do RTX 3050, pomimo większej ilości rdzeni CUDA i rdzeni Tensor. Powodem tego jest fakt, iż COLMAP w dużej mierze do przetwarzania oprócz karty graficznej używa także procesora. A2000 pracuje w parze ze słabszym 4 rdzeniowym procesorem XEON w opozycji do 6 rdzeniowego Ryzena. W tym wypadku procesor stał się wąskim gardłem i jego wymiana może poskutkować jeszcze większym zmniejszeniem czasu przetwarzania.

RTX A2000 posiada 6GB pamięci VRAM co jest wystarczające do trenowania modelu zamiast Tesli P40. Czas trenowania modelu z obrazów w jakości HD dla A2000 wynosi 55 minut natomiast z użyciem Tesli P40 wynosi 1 godzinę 5 minut. Jednakże ze względu na wysokie temperatury podczas przetwarzania kartą A2000 (80 ~ 85 oC) do obliczeń nadal preferowana jest tesla P40. Aby wymusić obliczenia na Tesli P40 stosuje się następującą komendę przed trenowaniem modelu:

set CUDA_VISIBLE_DEVICES=1

Mając na uwadze to co powyższe stwierdza się także, iż Tesla P40 oparta o architekturę Pascala (2016 r.) z 3840 rdzeniami CUDA niewiele odbiega wydajnością od RTX A2000 (3328 CUDA + 104 Tensor) z nowszą architekturą Ampere(2021 r.) podczas obliczeń maszynowych.

6GB VRAM na karcie A2000 umożliwiło także trenowanie modelów NERF na alternatywnym oprogramowaniu instant-ngp.

Z racji wysokich temperatur podczas przetwarzania dla A2000. Zalecana jest wymiana padów, pasty oraz ulepszenie chłodzenia aktywnego.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *