星期四, 10月 10, 2024

GCP Cloud Shell Editor 與 C 編譯小記

GCP Cloud Shell Editor 與 C 編譯小記



今天來寫使用 GCP 的 Cloud Shell Editor 小記


先來寫一下為何會寫這篇的情境

  • 想要有一個快速的 IDE 環境可以使用

    • 公司使用 Windows WSL (openSUSE Leap 15.5) vscode

    • 家裡使用 Macbook Air 15 with M3

    • 因為是不同的 OS 與不同的架構 (Intel and ARM)

  • Cloud Shell 支援 Gemini Code Assist 以及預設裝了開發套件

  • 參加 C 語言的小課程, 希望有個方便的環境開發


先來談談 GCP 的 Cloud Shell

有使用 GCP 的朋友, 非常強烈推薦大力使用目前免費的服務

之前有在網路上看到國外的網友於 2022 年計算 cloud shell 這個免費服務的價值


快速整理一下 現在的規格

  • OS: Ubuntu 24.04 

    • $cat  /etc/*release

  • 4 vCPU - Intel Xeon 2.20 GHz

    • $ cat /proc/cpuinfo | grep CPU

  • 16 G MEM

    • $ free -m

  • 120 GB Persistent-balanced HD for system + 5 GB persistent for home

    • $ lsblk | grep disk

    • $ curl -Ss "http://metadata.google.internal/computeMetadata/v1/instance/disks?recursive=true&alt=text" -H "Metadata-Flavor:  Google" | grep type


每週可以使用 50 小時

觀察方式, 點選 Session information 圖示 -- > Usage Quota


如果用 GCP 計算機計算費用

一個月是 NT$ 1,457.37


剛剛提到有 C 語言小課程, 檢查一下目前的套件狀況


$ gcc  --version


gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0

Copyright (C) 2023 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


$ g++  --version


g++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0

Copyright (C) 2023 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


$ gdb  --version


GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git

Copyright (C) 2024 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.


如果要編譯 C , Cloud Shell Editor 是使用 Code OSS, 也是可以裝 Extension 的

點選左方的 Extension 圖示, 搜尋 C/C++

我安裝了 C/C++ Runner, C/C++ Config, C/C++ Extension Pack



接下來可以進行測試

建立一個 test.c 的空白檔案

這個時候會看到提示 按 cmd + i 可以問 Gemini Code Assist



在檔案內輸入 // print "hello world" to the console 然後按 Ctrl + Enter 請 Gemini Code Assist 產生程式碼

這個時候就會產生範例程式碼

點選 右上角的 Run 圖示 -- > C/C++ Runner: Run File



如果 Debug File 出現錯誤



開啟 launch.json


將裡面的 type 從 cppdbg 改為 lldb


{

  "version": "0.2.0",

  "configurations": [

    {

      "name": "C/C++ Runner: Debug Session",

      "type": "lldb",

      "request": "launch",

      "args": [],

      "stopAtEntry": false,

      "externalConsole": false,

      "cwd": "/home/sakanamax/lab_c",

      "program": "/home/sakanamax/lab_c/build/Debug/outDebug",

      "MIMode": "gdb",

      "miDebuggerPath": "gdb",

      "setupCommands": [

        {

          "description": "Enable pretty-printing for gdb",

          "text": "-enable-pretty-printing",

          "ignoreFailures": true

        }

      ]

    }

  ]

}


應該就可以執行了


另外也可以同步請 Gemini Code Assist 協助, 例如 加上註解




又前進一步


~ enjoy it


References


星期四, 10月 03, 2024

GCP GCE 掛載 GPU小記

GCP GCE 掛載 GPU小記



隨著 AI 的熱度越來越高, GPU 運算的需求也越來越多, 除了使用雲端的 Manage Service 之外, 也有需求是使用 雲端上面的 VM 掛載 GPU 來進行一些實驗, 例如


 今天就來實作 GCP 上面的 GCE 如何掛載 GPU

開始之前, 先跟大家說明, 如果要掛載 GPU, 其實是要先去申請 GPU quota 的, 主要會有兩類



以台灣地區為例 (asia-east1-b), 我也整理了一個表格, 然後按照費用排序


GPU type

Number of GPUs

Monthly estimate USD

Monthly estimate TWD (匯率 1:32)

Machine type

對應型號

備註

NVIDIA H100 80GB MEGA

8

78,874

2,523,961

208 vCPU + 1,872 GB memory

a3-megagpu-8g

asia-east-1 不支援

預設沒有相對quota (CPUs)

NVIDIA H100 80GB

8

74,723

2,391,133

208 vCPU + 1,872 GB memory

a3-highgpu-8g

asia-east-1 不支援

預設沒有相對quota (CPUs)

NVIDIA A100 80GB

1

4,281

136,984

12 vCPU + 170 GB memory

a2-ultragpu-1g

asia-east-1 不支援

預設沒有相對quota(NVDIA A100 80GB GPUs)

NVIDIA A100 40GB

1

2,768

88,570

12 vCPU + 85 GB memory

a2-highgpu-1g

asia-east-1 不支援

預設沒有相對quota (NVIDIA A100 GPUs)

NVIDIA V100

1

1,296

41,484

1 vCPU + 3.75 GB memory

n1-standard-1


NVIDIA Tesla P100

1

847

27,094

1 vCPU + 3.75 GB memory

n1-standard-1


NVIDIA L4

1

598

19,151

4 vCPU + 16 GB memory

g2-standard-4


NVIDIA Tesla P4

1

361

11,560

1 vCPU + 3.75 GB memory

n1-standard-1

asia-east-1 不支援

Nvidia T4

1

208

6,654

1 vCPU + 3.75 GB memory

n1-standard-1

預設選項


這個部分就可以快速去對應自己的需求與荷包來看看要申請哪種類型的 GPU (storage 空間為預設)



接下來我以在 asia-east1-b 建立 openSUSE Leap 15.6 GCE 掛載 Nvidia T4 (無調整過 GPU quota)

在建立GCE 的時候就會出現錯誤訊息


  • 這邊就是我們上面提的 GPUs (all regions) quota 不足


點選 REQUEST QUOTA

會自動轉導向到 Quota 頁面

點選 GPUs(all regions) 功能表的 Edit Quota



這個時候會出現 Quota changes 畫面

原本的 value 為 0, 輸入新的 value 與提升 quota 原因 -- > Done


點選 Next



確認 姓名與Email -- > SUBMIT REQUEST


出現已經送出 Request 與案件 ID, 關閉目前的視窗



接下來去檢查信箱, 就會收到通知信



  • 因為額度不是要求很多, 所以我的通知信與通知接受提升 GPU quota 幾乎只有差一到兩分鐘就通過

  • 通過的信件有告知, 可能需要 15 分鐘的時間生效


再次檢查 quota



  • 就會發現 GPUs (all regions) quota 就提升到剛剛要求的數值


再次嘗試建立 GCE with GPU, 應該就可以建立成功

可以在該機器的 Machine configuration 的 GPUs 觀察掛載的 GPU



有了 GCE with GPU, 就離研究更進一步


~ enjoy it



References