Panduan ini menjelaskan cara membangun lingkungan komputasi rahasia heterogen pada instans komputasi rahasia heterogen Alibaba Cloud (gn8v-tee) serta menunjukkan cara menjalankan kode contoh untuk memverifikasi fitur komputasi rahasia GPU.
Latar Belakang
Instans komputasi rahasia heterogen Alibaba Cloud (gn8v-tee) memperluas instans komputasi rahasia CPU TDX dengan mengintegrasikan GPU ke dalam Trusted Execution Environment (TEE). Hal ini melindungi transfer data antara CPU dan GPU serta komputasi data di dalam GPU. Untuk informasi tentang membangun lingkungan komputasi rahasia CPU TDX dan memverifikasi kemampuan remote attestation-nya, lihat Membangun lingkungan komputasi rahasia TDX. Untuk menerapkan lingkungan inferensi large language model (LLM) pada instans komputasi rahasia heterogen, lihat Membangun lingkungan inferensi LLM yang mendukung pengukuran pada instans komputasi rahasia heterogen.
Gambar di atas menunjukkan bahwa GPU pada instans komputasi rahasia heterogen dimulai dalam mode komputasi rahasia. Mekanisme berikut memastikan kerahasiaan instans tersebut:
Fitur TDX memastikan bahwa Hypervisor/Host OS tidak dapat mengakses register sensitif atau data memori instans.
Firewall PCIe mencegah CPU mengakses register kritis GPU dan video memory yang dilindungi. Hypervisor/Host OS hanya dapat melakukan operasi terbatas pada GPU, seperti me-reset-nya, tetapi tidak dapat mengakses data sensitif, sehingga menjamin kerahasiaan data pada GPU.
NVLink Firewall GPU memblokir GPU lain agar tidak dapat langsung mengakses video memory-nya.
Saat inisialisasi, driver GPU dan fungsi pustaka di dalam CPU TEE membentuk saluran terenkripsi dengan GPU menggunakan protokol Security Protocol and Data Model (SPDM). Setelah negosiasi kunci selesai, hanya ciphertext yang dikirimkan melalui PCIe antara CPU dan GPU, sehingga menjamin kerahasiaan tautan transfer data.
Kemampuan remote attestation GPU memastikan bahwa GPU berada dalam keadaan aman.
Secara khusus, aplikasi dalam instans komputasi rahasia dapat menggunakan kit pengembangan perangkat lunak (SDK) Attestation untuk memanggil driver GPU dan memperoleh laporan kriptografis mengenai status keamanan GPU dari perangkat keras. Laporan ini berisi informasi yang ditandatangani secara kriptografis mengenai perangkat keras GPU, VBIOS, dan pengukuran status perangkat keras. Pihak yang bergantung dapat membandingkan pengukuran ini dengan pengukuran referensi yang disediakan oleh vendor GPU untuk memverifikasi bahwa GPU berada dalam keadaan komputasi rahasia yang aman.
Catatan Penggunaan
Komputasi rahasia heterogen memerlukan image Alibaba Cloud Linux 3. Jika Anda membuat instans menggunakan custom image berbasis Alibaba Cloud Linux 3, pastikan versi kernel-nya adalah 5.10.134-18 atau lebih baru.
Buat instans komputasi rahasia heterogen (gn8v-tee)
Konsol
Proses pembuatan instans komputasi rahasia heterogen di Konsol mirip dengan pembuatan instans standar, tetapi memerlukan opsi konfigurasi tertentu. Bagian ini menyoroti konfigurasi utama untuk instans komputasi rahasia heterogen. Untuk detail konfigurasi umum lainnya, lihat Buat instans menggunakan wizard.
-
Buka ECS console - Instances.
-
Pada bilah navigasi atas, pilih wilayah dan resource group dari resource yang ingin Anda kelola.
Klik Create Instance dan konfigurasikan instans dengan pengaturan berikut.
Item Konfigurasi
Deskripsi
Wilayah dan Zona
China (Beijing) Zona L
Instance Type
Hanya tipe instans ecs.gn8v-tee.4xlarge dan yang lebih besar yang didukung.
Image
Pilih image Alibaba Cloud Linux 3.2104 LTS 64-bit.
Alamat IP Publik
Assign Public IPv4 Address. Ini memastikan Anda dapat mengunduh driver dari website resmi NVIDIA nanti.
PentingSaat membuat atau merestart instans rahasia dengan 8 GPU, jangan tambahkan Elastic Network Interface (ENI) secondary tambahan atau disk data. Hal ini dapat menyebabkan kegagalan startup instans.
Ikuti petunjuk di layar untuk menyelesaikan pembuatan instans.
API/CLI
Anda dapat memanggil operasi RunInstances atau menggunakan Alibaba Cloud CLI untuk membuat instans ECS yang mendukung TDX. Parameter utama dijelaskan dalam tabel berikut.
Parameter | Deskripsi | Contoh |
RegionId | China (Beijing) | cn-beijing |
ZoneId | Zona L | cn-beijing-l |
InstanceType | Pilih ecs.gn8v-tee.4xlarge atau tipe instans yang lebih besar. | ecs.gn8v-tee.4xlarge |
ImageId | Tentukan ID image yang mendukung komputasi rahasia. Hanya image Alibaba Cloud Linux 3.2104 LTS 64-bit dengan versi kernel 5.10.134-18.al8.x86_64 atau lebih baru yang didukung. | aliyun_3_x64_20G_alibase_20250117.vhd |
Contoh CLI:
Dalam perintah ini,<SECURITY_GROUP_ID>merepresentasikan ID security group,<VSWITCH_ID>merepresentasikan ID vSwitch, dan<KEY_PAIR_NAME>merepresentasikan nama pasangan kunci SSH.
aliyun ecs RunInstances \
--RegionId cn-beijing \
--ZoneId cn-beijing-l \
--SystemDisk.Category cloud_essd \
--ImageId 'aliyun_3_x64_20G_alibase_20250117.vhd' \
--InstanceType 'ecs.gn8v-tee.4xlarge' \
--SecurityGroupId '<SECURITY_GROUP_ID>' \
--VSwitchId '<VSWITCH_ID>' \
--KeyPairName <KEY_PAIR_NAME>Membangun lingkungan komputasi rahasia heterogen
Langkah 1: Instal driver NVIDIA dan CUDA Toolkit
Instans komputasi rahasia heterogen memerlukan waktu lama untuk inisialisasi. Tunggu hingga status instans menjadi Running dan sistem operasi instans telah sepenuhnya dimulai.
Langkah instalasi bervariasi berdasarkan tipe instans:
Instans rahasia single-GPU: ecs.gn8v-tee.4xlarge dan ecs.gn8v-tee.6xlarge
Instans rahasia 8-GPU: ecs.gn8v-tee-8x.16xlarge dan ecs.gn8v-tee-8x.48xlarge
Instans rahasia single-GPU
Sambungkan ke instans komputasi rahasia.
Untuk informasi selengkapnya, lihat Masuk ke instans Linux menggunakan Workbench.
Sesuaikan parameter kernel untuk mengatur buffer SWIOTLB menjadi 8 GB.
sudo grubby --update-kernel=ALL --args="swiotlb=4194304,any"Restart instans untuk menerapkan perubahan.
Untuk informasi selengkapnya, lihat Restart instans.
Unduh driver NVIDIA dan CUDA Toolkit.
Instans rahasia single-GPU memerlukan versi driver
550.144.03atau lebih baru. Topik ini menggunakan versi550.144.03sebagai contoh.wget --referer=https://www.nvidia.cn/ https://cn.download.nvidia.cn/tesla/550.144.03/NVIDIA-Linux-x86_64-550.144.03.run wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.runInstal dependensi dan nonaktifkan layanan CloudMonitor.
sudo yum install -y openssl3 sudo systemctl disable cloudmonitor sudo systemctl stop cloudmonitorBuat dan konfigurasikan
nvidia-persistenced.service.cat > nvidia-persistenced.service << EOF [Unit] Description=NVIDIA Persistence Daemon Wants=syslog.target Before=cloudmonitor.service [Service] Type=forking ExecStart=/usr/bin/nvidia-persistenced --user root ExecStartPost=/usr/bin/nvidia-smi conf-compute -srs 1 ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced [Install] WantedBy=multi-user.target EOF sudo cp nvidia-persistenced.service /usr/lib/systemd/system/nvidia-persistenced.serviceInstal driver NVIDIA dan CUDA Toolkit.
sudo bash NVIDIA-Linux-x86_64-550.144.03.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd --kernel-module-build-directory=kernel-open --rebuild-initramfs sudo bash cuda_12.4.1_550.54.15_linux.run --silent --toolkitJalankan layanan nvidia-persistenced dan CloudMonitor.
sudo systemctl start nvidia-persistenced.service sudo systemctl enable nvidia-persistenced.service sudo systemctl start cloudmonitor sudo systemctl enable cloudmonitor
Instans rahasia 8-GPU
Sambungkan ke instans komputasi rahasia.
Untuk informasi selengkapnya, lihat Masuk ke instans Linux menggunakan Workbench.
PentingInstans komputasi rahasia memiliki proses inisialisasi yang lambat. Tunggu hingga proses selesai sebelum melanjutkan.
Sesuaikan parameter kernel untuk mengatur buffer SWIOTLB menjadi 8 GB.
sudo grubby --update-kernel=ALL --args="swiotlb=4194304,any"Konfigurasikan perilaku pemuatan driver NVIDIA dan regenerasi initramfs.
sudo bash -c 'cat > /etc/modprobe.d/nvidia-lkca.conf << EOF install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia options nvidia NVreg_RegistryDwords="RmEnableProtectedPcie=0x1" EOF' sudo dracut --regenerate-all -fRestart instans untuk menerapkan perubahan.
Untuk informasi selengkapnya, lihat Restart instans.
Unduh driver NVIDIA dan CUDA Toolkit.
Instans komputasi rahasia 8-GPU memerlukan versi driver
570.148.08atau lebih baru dan versiFabric Manageryang sesuai. Topik ini menggunakan versi570.148.08sebagai contoh.wget --referer=https://www.nvidia.cn/ https://cn.download.nvidia.cn/tesla/570.148.08/NVIDIA-Linux-x86_64-570.148.08.run wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel8/x86_64/nvidia-fabric-manager-570.148.08-1.x86_64.rpmInstal dependensi dan nonaktifkan layanan CloudMonitor.
sudo yum install -y openssl3 sudo systemctl disable cloudmonitor sudo systemctl stop cloudmonitorBuat dan konfigurasikan
nvidia-persistenced.service.cat > nvidia-persistenced.service << EOF [Unit] Description=NVIDIA Persistence Daemon Wants=syslog.target Before=cloudmonitor.service After=nvidia-fabricmanager.service [Service] Type=forking ExecStart=/usr/bin/nvidia-persistenced --user root --uvm-persistence-mode --verbose ExecStartPost=/usr/bin/nvidia-smi conf-compute -srs 1 ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced TimeoutStartSec=900 TimeoutStopSec=60 [Install] WantedBy=multi-user.target EOF sudo cp nvidia-persistenced.service /usr/lib/systemd/system/nvidia-persistenced.serviceInstal Fabric Manager, driver NVIDIA, dan CUDA Toolkit.
sudo rpm -ivh nvidia-fabric-manager-570.148.08-1.x86_64.rpm sudo bash NVIDIA-Linux-x86_64-570.148.08.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd --kernel-module-build-directory=kernel-open --rebuild-initramfs sudo bash cuda_12.8.1_570.124.06_linux.run --silent --toolkitJalankan dan aktifkan layanan nvidia-fabricmanager, nvidia-persistenced, dan cloudmonitor.
sudo systemctl start nvidia-fabricmanager.service sudo systemctl enable nvidia-fabricmanager.service sudo systemctl start nvidia-persistenced.service sudo systemctl enable nvidia-persistenced.service sudo systemctl start cloudmonitor sudo systemctl enable cloudmonitor
Langkah 2: Periksa status TDX
Fitur ini dibangun di atas TDX. Pertama, periksa status TDX instans untuk memverifikasi bahwa instans tersebut dilindungi.
Periksa apakah TDX diaktifkan.
lscpu |grep -i tdx_guestOutput perintah berikut menunjukkan bahwa TDX diaktifkan.
Periksa instalasi driver terkait TDX.
ls -l /dev/tdx_guestGambar berikut menunjukkan bahwa driver terkait TDX telah terinstal.

Langkah 3: Periksa status fitur komputasi rahasia GPU
Instans rahasia single-GPU
Lihat status fitur komputasi rahasia.
nvidia-smi conf-compute -fCC status: ON menunjukkan bahwa fitur komputasi rahasia diaktifkan. CC status: OFF menunjukkan bahwa fitur dinonaktifkan karena kesalahan instans. Jika hal ini terjadi, kirim tiket.

Instans rahasia 8-GPU
Lihat status atribut komputasi rahasia.
nvidia-smi conf-compute -mgmMulti-GPU Mode: Protected PCIe menunjukkan bahwa fitur komputasi rahasia multi-GPU diaktifkan. Multi-GPU Mode: None menunjukkan bahwa fitur dinonaktifkan karena kesalahan instans. Jika hal ini terjadi, kirim tiket.

Untuk instans rahasia 8-GPU, perintah nvidia-smi conf-compute -f biasanya mengembalikan CC status: OFF.
Langkah 4: Verifikasi kepercayaan GPU dan NVSwitch menggunakan local attestation
Instans rahasia single-GPU
Instal dependensi yang diperlukan untuk kepercayaan GPU.
sudo yum install -y python3.11 python3.11-devel python3.11-pip sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 60 sudo alternatives --set python3 /usr/bin/python3.11 sudo python3 -m ensurepip --upgrade sudo python3 -m pip install --upgrade pip sudo python3 -m pip install nv_attestation_sdk==2.5.0.post6914366 nv_local_gpu_verifier==2.5.0.post6914366 nv_ppcie_verifier==1.5.0.post6914366 -f https://attest-public-cn-beijing.oss-cn-beijing.aliyuncs.com/repo/pip/attest.htmlVerifikasi status kepercayaan GPU.
python3 -m verifier.cc_admin --user_modeOutput menunjukkan bahwa GPU berada dalam mode komputasi rahasia dan pengukuran seperti driver dan VBIOS sesuai dengan nilai yang diharapkan:

Instans rahasia 8-GPU
Instal dependensi yang diperlukan untuk kepercayaan GPU.
sudo yum install -y python3.11 python3.11-devel python3.11-pip sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 60 sudo alternatives --set python3 /usr/bin/python3.11 sudo python3 -m ensurepip --upgrade sudo python3 -m pip install --upgrade pip sudo python3 -m pip install nv_attestation_sdk==2.5.0.post6914366 nv_local_gpu_verifier==2.5.0.post6914366 nv_ppcie_verifier==1.5.0.post6914366 -f https://attest-public-cn-beijing.oss-cn-beijing.aliyuncs.com/repo/pip/attest.htmlInstal dependensi terkait NVSwitch.
wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel8/x86_64/libnvidia-nscq-570-570.148.08-1.x86_64.rpm sudo rpm -ivh libnvidia-nscq-570-570.148.08-1.x86_64.rpmJalankan perintah berikut untuk memverifikasi status kepercayaan GPU/NVSwitch.
python3 -m ppcie.verifier.verification --gpu-attestation-mode=LOCAL --switch-attestation-mode=LOCALKode contoh memverifikasi delapan GPU dan empat NVSwitch. Output
SUCCESSmenunjukkan bahwa verifikasi berhasil:
Batasan
Karena fitur ini dibangun di atas TDX, fitur ini mewarisi batasan instans komputasi rahasia TDX. Untuk informasi selengkapnya, lihat Batasan yang diketahui dari instans TDX.
Setelah fitur komputasi rahasia GPU diaktifkan, transfer data antara CPU dan GPU memerlukan enkripsi dan dekripsi. Proses enkripsi dan dekripsi ini mengakibatkan performa lebih rendah untuk tugas terkait GPU dibandingkan pada instans heterogen non-rahasia.
Catatan Penggunaan
Instans single-GPU menggunakan CUDA 12.4. Pustaka NVIDIA cuBLAS memiliki masalah yang diketahui yang dapat menyebabkan error saat menjalankan tugas CUDA atau LLM. Untuk mengatasinya, instal versi spesifik cuBLAS.
pip3 install nvidia-cublas-cu12==12.4.5.8Setelah fitur komputasi rahasia GPU diaktifkan, proses inisialisasi menjadi lambat, terutama untuk instans 8-GPU. Setelah guest OS dimulai, Anda harus memverifikasi bahwa layanan
nvidia-persistencedtelah selesai dimulai sebelum menggunakan GPU dengan menjalankan perintahnvidia-smiatau perintah lainnya. Untuk memeriksa status layanannvidia-persistenced, jalankan perintah berikut:systemctl status nvidia-persistenced | grep "Active: "activating (start)menunjukkan bahwa layanan sedang dimulai.Active: activating (start) since Wed 2025-02-19 10:07:54 CST; 2min 20s agoactive (running) menunjukkan bahwa layanan sedang berjalan.
Active: active (running) since Wed 2025-02-19 10:10:28 CST; 22s ago
Setiap layanan auto-start yang menggunakan GPU, seperti
cloudmonitor.service,nvidia-cdi-refresh.service(dari paket nvidia-container-toolkit-base), atauollama.service, harus dikonfigurasi untuk dimulai setelahnvidia-persistenced.service.Berikut adalah contoh konfigurasi untuk
/usr/lib/systemd/system/nvidia-persistenced.service:[Unit] Description=NVIDIA Persistence Daemon Wants=syslog.target Before=cloudmonitor.service nvidia-cdi-refresh.service ollama.service After=nvidia-fabricmanager.service [Service] Type=forking ExecStart=/usr/bin/nvidia-persistenced --user root --uvm-persistence-mode --verbose ExecStartPost=/usr/bin/nvidia-smi conf-compute -srs 1 ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced TimeoutStartSec=900 TimeoutStopSec=60 [Install] WantedBy=multi-user.target