Użycie GCP do eksperymentów z GPU
Aby skorzystać z grantu Google dla edukacji w pierwszej kolejności musimy utworzyć nowy projekt i przypisać do niego otrzymany grant:
Po utworzeniu projektu powinniśmy zobaczyć następujące informacje na jego temat:
Konieczne jest wybranie tego projektu jako projektu, na którym aktualnie pracujemy (jest on dostępny w menu rozwijanym widocznym na obrazie).
Mając wybrany projekt, możemy przystąpić do tworzenia instancji. W menu główynym wybieramy “Compute Engine” oraz “VM instances” :
Konieczne jest aktywowanie usługu “Compute engine” przed przejściem do kolejnych krotków.
Po jej aktywowaniu, powinniśmy mieć możliwość tworzenia instancji (niebieski przycisk poniżej):
Zanim utworzymy instancję, wnioskujemy o zwiększenie limitu używania GPU, ponieważ domyślnie nie możemy zaalokować żadnej instancji. Odpowiednie informacje znajdują się w sekcji IAM & Admin, zakładka “Quotas and system limits” :
W wyszukiwarce wpisujemy “gpus-all-regins-per-project” i wybieramy akcję “Edit quota” :
We wniosku krótko uzasadniamy dlaczego potrzebujemy dostępu do GPU:
Proces zwiększania limitu zasobów możwe chwilę potrwać.
Kiedy uzyskamy zwiększony limit możemy utworzyć instancję z GPU.
Wracamy do sekcji “Compute Engine API”. Wybieramy instancję z GPU (np. N1) w podwariancie n1-standard-1
Dobrze jest zmienić dysk bootowalny, tak aby mieć podstawowe biblioteki już zainstalowane i skonfigurowane na maszynie:
Jeśli mamy te wszystkie informacje poprawnie skonfigurowane, możemy utworzyć instancję!
Uwaga: Od momentu utworzenia instancji naliczane są opłaty, które pomniejszają nasz grant edukacyjny.
Jeśli tworzenie instancji zakończy się sukcesem, w panelu powinniśmy zobaczyć jej zewnętrzny adres IP:
Niestety, może również pojawić się komunikat błędu, mówiący, że w danej lokalizacji nie ma dostępnych instancji z GPU. Niestety jest to bardzo częsta sytuacja! Wtedy powinniśmy zmienić lokalizację, w której uruchamiamy naszą instancję.
Jeśli jednak proces zakończy się powodzeniem, musimy skonfigurować dostęp do instancji.
Trzeba odblokować port 8888. Wchodzimy do “VPS network” a następnie “Firewall”.
I klikamy guzik Create firewall rule>
Następnie określamy parametry reguły – otwieramy port 8888. Ponieważ mamy tylko jedną instancję, możemy tę regułę aplikować do wszystkich instancji. Możemy domyślnie dać dostęp z dowolnego miejsca (0.0.0.0/0), ale możemy też wskazać własny adres IP, co zwiększa bezpieczeństwo.
Następnie łączymy się z instancją. Możemy zrobić to wprost w przeglądarce klikając guzik “SSH” tutaj:
Po zalogowaniu na maszynę instalujemy niezbędne narzędzia, takie jak jupyter notebook, poetry. Jest jednak prawdopodobne, że najpotrzebniejsze biblioteki będą już zainstalowane.
Uruchamiany jupyter lab i w logu odnajdujmy linijkę z informacją o tokenie:
Token ten wpisujemy przy logowaniu, które dostępne jest pod adresem publicznym naszej instancji:
Na koniec pamiętemy, żeby zatrzymać uruchomioną instancję, klikając “stop”:
Uwaga: wtedy przestają być naliczane opłaty za CPU/GPU, ale nadal naliczane są opłaty za zajętą przestrzeń dyskową. Optymalnie jest pobrać wytrenowany model na swój komputer, żeby uniknąć tych opłat. Wtedy możemy kliknąć “delete” co powoduje również usunięcie dysku uruchomieniowego, na którym mieliśmy dane eksperymentalne.