# Lab Server Setting # **Check** Ubuntu OS Version ```python lsb_release -a # Katsu 的開機碟是安裝 Ubuntu 20.04.6 LTS ``` # SSH Remote ## 產生本地 SSH 密鑰 1. 在本機 Terminal 或 CMD 輸入以下指令產生本機 SSH 密鑰 ```python ssh-keygen -t rsa ``` 2. 接著會顯示儲存 SSH 密鑰的位置,和詢問要設定的密碼,這邊保持預設,連按三次 enter 3. 可以在 CMD 輸入以下指令查看生成的公鑰內容 ```python cat ~/.ssh/id_rsa.pub ``` ## Terminal 連線步驟 1. 在本機 Terminal 或 CMD 輸入以下指令進行連線 ```python # ssh username@hostname ssh aero@140.112.122.140 -p 54142 ``` - `username` 是伺服器上的使用者名稱 - `hostname` 是伺服器的 IP 位址 - 可以使用 `-p` 參數指定埠號 2. 設定 SSH Config File 1. 檔案路徑: ```python # /Users/<username> /Users/charlie/.ssh ``` 2. macOS 顯示隱藏檔案,在 Finder 使用快捷鍵:**Command (⌘) + Shift + . (點)** 鍵 ## VSCode 設定步驟 1. 安裝Remote - SSH 擴充套件 1. 開啟 VSCode,點擊左側的擴充套件圖示 2. 在搜尋框中輸入 SSH 或 Remote - SSH,找到並點擊安裝 2. 設定 SSH 連線 1. 安裝完成後,按 `Command+Shift+P` 開啟命令面板 2. 輸入 `Remote-SSH: Connect to Host...`,並選擇要連線的選項 3. 如果是第一次連線,需寫入設定檔案,或是直接輸入 ssh username@hostname 1. 按 `Command+Shift+P` 開啟命令面板 2. 輸入 `Remote-SSH: Open SSH ConfigFile` ```python Host 140.112.122.140 HostName 140.112.122.140 User aero Port 54142 ``` 3. 按 `Command+Shift+P` 開啟命令面板,輸入`Developer: Reload Window` 然後按 Enter 3. 打開命令面板(`Ctrl+Shift+P`),選擇 `Remote-SSH: Connect to Host...`,從列表中選擇剛剛配置的主機 4. 輸入密碼或使用密鑰認證 ## PyCharm 設定步驟 **請參考實驗室寶典** ## 設定無需密碼連接遠端伺服器 將本機產生的 SSH 公鑰加到伺服器的`authorized_keys` 檔案中,以實現無需每次連線都輸入密碼 1. 查看生成的公鑰(可參考上述 SSH Config File 之檔案路徑) 1. 在 CMD 輸入以下指令查看生成的公鑰內容 ```python cat ~/.ssh/id_rsa.pub ``` 2. 公鑰的樣式如下 ```python ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4...你的公鑰...== your_email@example.com ``` 2. 本機 Terminal 或 CMD 連接到伺服器 ```python # ssh user@hostname ssh aero@140.112.122.140 -p 54142 ``` 3. 使用以下指令將複製的公鑰內容添加到 `authorized_keys` 檔案中,**注意**:請將上一步中複製的公鑰內容貼上到引號中間 ```python echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4...你的公鑰...== your_email@example.com" >> ~/.ssh/authorized_keys echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCYwC+xI1N7JLQAmioohmsQwMQ1FiXhkCaZdV0piFjV4aJuIC9biO9hqwnRSspkk1aSe3IaeVOsbjLs8gHXr5mARHkSxMF+uKhlSvKv1wNPD8mEKaUEHz17+ML2ARs1Ba342X4bby15oZHe2Jo3LHwDjHEajUKwBwU4CjSRYQgBcbyjSa6ZGQPnBEnVyrisb4DP6qnXoDS2/UQ8OG2CW6g17RWo3ECKQzR7Ii7PksfKXoNe8nJ74NC49y9swH/4XcpfvpKRb7w19TqUfYbA86mt7loPr8SP5xKwi/ITZyUOxBrYuAsM0ELNTsr9jQyC5qWtb8lvCDFIP/PwiG6uyjPGzKO/RmH4kM8lJvj3Z5Nx5kNsSiDq/lYsgfrOp4p3ijiShEq2fTsQH5aZ+AeACHRwM+QOcECPTtoWI6LvjMmk6A3S2vuvn3PpHb1OonnX0PVaATJNluC9TMA4mfN4384KTJZIYzOsFfpVNixxkP2T4sWaiG9DBwyqyTV32a65Dwc= charlie@Charlies-MacBook-Pro.local" >> ~/.ssh/authorized_keys ``` 4. 驗證無密碼 SSH 連接 1. 退出遠端伺服器的連接 ```python exit ``` 2. 重新使用 SSH 連接到你的遠端伺服器,這時候應該不用輸入密碼 ```python # ssh user@hostname ssh tzui@140.112.122.141 ``` # Create User 1. 先登入一個具有 root 權限的使用者帳號帳號 1. 在 Terminal 輸入以下指令,確認目前帳號具有 sudo 權限,如果顯示的群組中包含 `sudo`,代表已經有權限可以進行系統管理操作 ```python groups ``` 2. 建立新帳號:用 `adduser` 指令建立一個新的使用者帳號 ```python # sudo adduser newuser sudo adduser aero ``` 3. 將新帳號加入 sudo 群組:要讓新使用者擁有 root 權限,要加入 `sudo` 群組 ```python # sudo usermod -aG sudo newuser sudo usermod -aG sudo aero ``` 4. 驗證新帳號的權限:您可以切換到新的帳號並測試其是否具有 `sudo` 權限 ```python # su - newuser su - aero # 如果帳號設置正確,執行 sudo whoami 時會返回 root,表示新的帳號已經擁有 root 權限 sudo whoami ``` 5. 建立新帳號後,新增自己名字的資料夾,並在資料夾內新增 dataset、logs、projects 三個子資料夾以便未來存放程式碼和資料 # Environment & Anaconda 安裝內容:NVIDIA 驅動程式、CUDA Toolkit、cuDNN、Anaconda、PyTorch ## 安裝 NVIDIA 驅動程式 1. 查詢可用的 NVIDIA 驅動程式 1. 參考文章:https://ubuntu.com/server/docs/nvidia-drivers-installation 2. 使用以下指令查詢系統可用的驅動程式版本 ```python # 1 列出與系統硬體相匹配的驅動程式,recommended 表示推薦的版本 ubuntu-drivers devices # 2 列出系統上可用的所有 NVIDIA 驅動程式 sudo ubuntu-drivers list # 3 僅列出針對 GPGPU 用途的驅動程式版本 # General-Purpose computing on Graphics Processing Units,通用圖形處理單元運算 sudo ubuntu-drivers list --gpgpu ``` 2. 安裝 NVIDIA 驅動程式 1. 使用以下指令安裝特定版本的驅動程式 ```python # Let’s assume we want to install the 535 driver: sudo ubuntu-drivers install nvidia:535 ``` 2. 安裝完成後,視情況重啟系統: ```python sudo reboot ``` 3. 確認 NVIDIA 驅動程式安裝是否成功 ```python # 如果顯示 GPU 型號、驅動版本等訊息,表示驅動程式已成功安裝並可以正常使用 nvidia-smi ``` ## 安裝 CUDA Toolkit & cuDNN - **Optional Step** - 除非有特定需求或想要控制安裝的 CUDA 和 cuDNN 版本 - 不一定需要先手動安裝 CUDA Toolkit 和 cuDNN 才能安裝 PyTorch。如果使用適當的指令安裝 PyTorch 時,Conda 會自動幫你處理 CUDA Toolkit 和 cuDNN 的依賴關係,只需要在安裝 PyTorch 時指定相應的 CUDA 版本即可 ## 安裝 Anaconda 1. 參考文章:https://docs.anaconda.com/anaconda/install/linux/#prerequisites 2. 查看使用的 Linux 系統的架構(architecture) ```python uname -m ``` 3. 下載 Installer ```python curl -O https://repo.anaconda.com/archive/Anaconda3-<INSTALLER_VERSION>-Linux-x86_64.sh curl -O https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh ``` 4. 安裝 ```python bash ~/Downloads/Anaconda3-<INSTALLER_VERSION>-Linux-x86_64.sh # 這邊要注意下載檔案的路徑在哪邊,依照需求調整 bash ~/Anaconda3-2023.09-0-Linux-x86_64.sh ``` 5. 閱讀並接受許可協議(按 `Enter` 瀏覽條款,輸入 `yes` 接受) 1. 注意:不要按太快! 6. 選擇安裝位置,Press ENTER to confirm the location,預設為 `/home/<USER>/anaconda3` 7. 接著詢問是否希望自動初始化 `conda` 1. 選擇 `yes`:`conda` 會自動在每次啟動時被初始化,並且會自動激活 `base` 環境,每次開啟終端時都會進入 `base` 環境 2. 選擇 `no`:`conda` 不會自動在每次啟動時初始化,可以自己手動激活 `conda` 環境 3. 建議先選擇 `yes`,後續若要更動再自行設定 8. 重新啟動 Terminal,或輸入以下指令重新加載 Terminal 的設定檔 ```python source ~/.bashrc ``` 9. 驗證安裝,使用以下指令來查看 Anaconda 的版本資訊 1. 或參考此文章:https://docs.anaconda.com/anaconda/install/verify-install/ ```python conda --version conda -V ``` 10. **Optional Step** 如果不想 `base` 環境自動啟動,可以執行以下指令: ```python conda config --set auto_activate_base false ``` ## 啟用建立刪除虛擬環境 ### 開啟Anaconda Prompt 1. **Optional Step** 在 Windows 開始選單搜尋 Anaconda Prompt,為 Anaconda 版的 CMD 2. **Optional Step** 輸入指令檢查目前版本 ```python conda --version conda -V # 如果想進行更新 conda update conda ``` ### 建立虛擬環境 - 查看目前系統已經安裝哪幾個虛擬環境 ```python conda env list ``` - 假設要建立一個名叫 learnpytorch 的虛擬環境,並且安裝 python3.8 的版本 ```python conda create --name learnpytorch python=3.8 conda create --name neuron python=3.8 conda create --name nnunetv1 python=3.8 conda create --name smore python=3.8 conda create --name espreso python=3.8 ``` ### 啟用和停用虛擬環境 - 啟用虛擬環境 ```python conda activate learnpytorch conda activate neuron conda activate nnunetv1 conda activate smore conda activate espreso ``` - 停用虛擬環境 ```python conda deactivate ``` ### 安裝套件和使用 - 查看目前虛擬環境已經安裝哪些東西 ```python conda list ``` - 安裝套件,假設安裝 matplotlib ```python conda install matplotlib # 我自己嘗試 pip install 也可以 pip install matplotlib ``` ### 刪除虛擬環境或套件 - 刪除虛擬環境中的某個套件 ```python conda remove --name learnpytorch matplotlib # 注意:如果是用 pip 安裝的就不可以使用這個指令解除安裝套件,需使用 pip uninstall matplotlib ``` - 刪除整個虛擬環境 ```python conda env remove --name learnpytorch conda env remove --name smore ``` ## 安裝 PyTorch - 不一定需要先手動安裝 CUDA Toolkit 和 cuDNN 才能安裝 PyTorch。如果使用適當的指令安裝 PyTorch 時,Conda 會自動幫你處理 CUDA Toolkit 和 cuDNN 的依賴關係,只需要在安裝 PyTorch 時指定相應的 CUDA 版本即可 - Select preferences and run the command to install PyTorch locally: https://pytorch.org/get-started/previous-versions/ ```python # Linux and Windows CUDA 11.6 conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia # 刪除已安裝的 PyTorch pip uninstall torch ``` - 學姐建議安裝的版本:Python 3.8、CUDA 11.6 ## 其他實用指令 - 檢查環境中使用的 Python 版本 ```python python --version python -V ``` - 檢查環境使否能順利匯入 torch,並查看 PyTorch 的版本 ```python # 先輸入 python 啟動 python 環境 python import torch print(torch.__version__) # 顯示安裝的 PyTorch 版本 print(torch.cuda.is_available()) # 檢查系統是否可以使用 CUDA,返回 True 或 False print(torch.version.cuda) # 顯示 PyTorch 所使用的 CUDA 版本 print(torch.backends.cudnn.version()) # 顯示 cuDNN 版本 # 或使用以下指令 python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda); print(torch.backends.cudnn.version())" # 離開 python 環境 exit() Ctrl-Z ```