Siapkan lingkungan komputasi rahasia heterogen pada instans gn8v-tee dan verifikasi komputasi rahasia GPU dengan kode contoh.
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), sehingga melindungi transfer data antara CPU dan GPU serta komputasi data di GPU. Untuk membangun lingkungan komputasi rahasia CPU TDX dan memverifikasi remote attestation, lihat Bangun lingkungan komputasi rahasia TDX. Untuk membangun lingkungan AI Agent rahasia pada instans komputasi rahasia heterogen, lihat Bangun agen AI rahasia OpenClaw pada instans komputasi rahasia heterogen.
GPU pada instans komputasi rahasia heterogen dimulai dalam mode komputasi rahasia. Mekanisme berikut menjamin kerahasiaan:
TDX mencegah Hypervisor/Host OS mengakses register sensitif atau data memori instans.
Firewall PCIe mencegah CPU mengakses register kritis GPU dan memori video yang dilindungi. Hypervisor/Host OS hanya dapat melakukan operasi terbatas seperti mereset GPU, tetapi tidak dapat mengakses data sensitif.
NVLink Firewall GPU memblokir GPU lain agar tidak langsung mengakses memori videonya.
Saat inisialisasi, driver GPU dan fungsi pustaka dalam CPU TEE membuat saluran terenkripsi dengan GPU melalui protokol SPDM. Setelah negosiasi kunci, hanya ciphertext yang dikirimkan melalui PCIe antara CPU dan GPU.
Kemampuan remote attestation GPU memastikan bahwa GPU berada dalam kondisi aman.
Aplikasi dalam instans komputasi rahasia dapat menggunakan Attestation SDK untuk memanggil driver GPU dan mendapatkan laporan kriptografis mengenai status keamanan GPU. Laporan ini berisi informasi yang ditandatangani secara kriptografis tentang perangkat keras GPU, VBIOS, dan pengukuran status perangkat keras. Pihak yang bergantung dapat membandingkan pengukuran ini dengan pengukuran referensi dari vendor GPU untuk memverifikasi bahwa GPU berada dalam kondisi komputasi rahasia yang aman.
Catatan Penggunaan
Komputasi rahasia heterogen memerlukan image Alibaba Cloud Linux 3. Jika Anda menggunakan custom image berbasis Alibaba Cloud Linux 3, pastikan versi kernel adalah 5.10.134-18 atau lebih baru.
Buat instans komputasi rahasia heterogen (gn8v-tee)
Konsol
Membuat instans komputasi rahasia heterogen mirip dengan membuat instans standar, tetapi memerlukan konfigurasi khusus. Untuk konfigurasi umum, lihat Buat instans menggunakan wizard.
Buka ECS console - Instances.
Di pojok kiri atas halaman, pilih wilayah dan resource group.
Klik Create Instance dan konfigurasikan instans dengan pengaturan berikut.
Item Konfigurasi
Deskripsi
Wilayah dan Zona
China (Beijing) Zona L
Instance Type
ecs.gn8v-tee.4xlarge atau lebih tinggi.
Image
Pilih image Alibaba Cloud Linux 3.2104 LTS 64-bit.
Alamat IP Publik
Assign Public IPv4 Address. Diperlukan untuk mengunduh driver NVIDIA nanti.
PentingSaat membuat atau me-restart instans rahasia dengan 8 GPU, jangan menyambungkan ENI sekunder tambahan atau disk data. Hal ini dapat menyebabkan kegagalan startup.
Selesaikan pembuatan instans dengan mengikuti instruksi di layar.
API/CLI
Panggil operasi RunInstances atau gunakan Alibaba Cloud CLI untuk membuat instans ECS dengan TDX diaktifkan. Parameter utama:
Parameter | Deskripsi | Contoh |
RegionId | China (Beijing) | cn-beijing |
ZoneId | Zona L | cn-beijing-l |
InstanceType | ecs.gn8v-tee.4xlarge atau lebih tinggi. | ecs.gn8v-tee.4xlarge |
ImageId | 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. | aliyun_3_x64_20G_alibase_20250117.vhd |
Contoh CLI:
<SECURITY_GROUP_ID>: ID security group.<VSWITCH_ID>: ID vSwitch.<KEY_PAIR_NAME>: nama SSH key pair.
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>Bangun 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 telah sepenuhnya dimulai.
Langkah instalasi bervariasi tergantung 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. Lihat Masuk ke instans Linux menggunakan Workbench.
Atur buffer SWIOTLB menjadi 8 GB.
sudo grubby --update-kernel=ALL --args="swiotlb=4194304,any"Restart instans. Lihat Restart instans.
Unduh driver NVIDIA dan CUDA Toolkit.
Instans rahasia single-GPU memerlukan versi driver
550.144.03atau lebih baru. Contoh ini menggunakan550.144.03.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. Lihat Masuk ke instans Linux menggunakan Workbench.
PentingInstans komputasi rahasia memerlukan waktu lama untuk inisialisasi. Tunggu hingga proses selesai sebelum melanjutkan.
Atur buffer SWIOTLB menjadi 8 GB.
sudo grubby --update-kernel=ALL --args="swiotlb=4194304,any"Konfigurasikan perilaku pemuatan driver NVIDIA dan buat ulang 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. Lihat Restart instans.
Unduh driver NVIDIA dan CUDA Toolkit.
Instans komputasi rahasia 8-GPU memerlukan versi driver
570.148.08atau lebih baru danFabric Manageryang sesuai. Contoh ini menggunakan570.148.08.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 bergantung pada TDX. Periksa status TDX untuk memverifikasi bahwa instans dilindungi.
Periksa apakah TDX diaktifkan.
lscpu |grep -i tdx_guestJika output berisi
tdx_guest, berarti TDX diaktifkan.[root@iZwzxxxxxxxx:~]# lscpu |grep -i tdx_guest Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc bts rep_good nopl xtopology tsc_known_freq pni pclmulqdq dtes64 ds_cpl ssse3 sdbg fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single sbd ibrs ibpb stibp ibrs_enhanced tdx_guest fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap avx512ifma clflushopts clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx_vnni avx512_bf16 wbnoinvd avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid bus_lock_detect cldemote movdiri movdir64b _vp2intersect md_clear serialize tsxldtrk amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilitiesPeriksa instalasi driver terkait TDX.
ls -l /dev/tdx_guestOutput berikut menunjukkan driver terkait TDX telah terinstal.
[ ~@iz2ze ~]# ls -l /dev/tdx_guest crw------- 1 root root 10, 125 Jan 30 16:51 /dev/tdx_guest
Langkah 3: Periksa status fitur komputasi rahasia GPU
Instans rahasia single-GPU
Periksa status komputasi rahasia.
nvidia-smi conf-compute -fCC status: ON menunjukkan komputasi rahasia diaktifkan. CC status: OFF menunjukkan fitur dinonaktifkan karena kesalahan instans. Jika hal ini terjadi, kirim tiket.
Instans rahasia 8-GPU
Periksa status komputasi rahasia.
nvidia-smi conf-compute -mgmMulti-GPU Mode: Protected PCIe menunjukkan komputasi rahasia multi-GPU diaktifkan. Multi-GPU Mode: None menunjukkan fitur dinonaktifkan karena kesalahan instans. Jika hal ini terjadi, kirim tiket.
Untuk instans rahasia 8-GPU, 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 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 GPU berada dalam mode komputasi rahasia dan pengukuran seperti driver dan VBIOS sesuai dengan nilai yang diharapkan:
Instans rahasia 8-GPU
Instal dependensi 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 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.rpmVerifikasi status kepercayaan GPU/NVSwitch.
python3 -m ppcie.verifier.verification --gpu-attestation-mode=LOCAL --switch-attestation-mode=LOCALKode contoh memverifikasi delapan GPU dan empat NVSwitch.
SUCCESSmenunjukkan verifikasi berhasil:All nvSwitches Attested Successfully **************************************************** * PPCIE: Switch attestation result is True * **************************************************** **************************************************** * PPCIE: Switch Attestation Completed * **************************************************** **************************************************** * PPCIE: GPU state is READY * **************************************************** +-------------------------+----------+ | STAGE | STATUS | +-------------------------+----------+ | GPU Pre-checks | SUCCESS | | Switch Pre-checks | SUCCESS | | GPU Attestation | SUCCESS | | Switch Attestation | SUCCESS | | Topology checks | SUCCESS | +-------------------------+----------+ **************************************************** * PPCIE: End of PPCIE Verification Tool * ****************************************************
Batasan
Fitur ini mewarisi batasan instans TDX.
Dengan komputasi rahasia GPU diaktifkan, transfer data CPU-GPU memerlukan enkripsi dan dekripsi, sehingga menghasilkan performa tugas GPU yang lebih rendah dibandingkan 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. Instal versi cuBLAS tertentu untuk mengatasi hal ini.
pip3 install nvidia-cublas-cu12==12.4.5.8Dengan komputasi rahasia GPU diaktifkan, inisialisasi berjalan lambat, terutama untuk instans 8-GPU. Setelah guest OS dimulai, pastikan
nvidia-persistencedtelah selesai dimulai sebelum menggunakan GPU dengannvidia-smiatau perintah lainnya. Periksa status layanannvidia-persistenced:systemctl status nvidia-persistenced | grep "Active: "activating (start)— layanan sedang dimulai.Active: activating (start) since Wed 2025-02-19 10:07:54 CST; 2min 20s agoactive (running) — layanan sedang berjalan.
Active: active (running) since Wed 2025-02-19 10:10:28 CST; 22s ago
Layanan auto-start yang bergantung pada GPU, seperti
cloudmonitor.service,nvidia-cdi-refresh.service(dari nvidia-container-toolkit-base), atauollama.service, harus dimulai setelahnvidia-persistenced.service.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