[{"data":1,"prerenderedAt":1668},["ShallowReactive",2],{"blog-ja-proxmox-gpu-passthrough-ai-workloads":3,"blog-ja-proxmox-gpu-passthrough-ai-workloads-alt":258},{"id":4,"title":5,"author":6,"body":7,"date":1651,"description":1652,"extension":1653,"image":213,"locale":1654,"meta":1655,"navigation":258,"path":1656,"seo":1657,"stem":1658,"tags":1659,"__hash__":1667},"blog\u002Fblog\u002Fja\u002Fproxmox-gpu-passthrough-ai-workloads.md","Proxmox GPU パススルー設定: AI\u002FML ワークロード対応","Kubo Team",{"type":8,"value":9,"toc":1625},"minimark",[10,22,31,36,45,50,58,75,79,161,169,173,177,180,201,204,207,303,309,312,345,349,357,460,464,467,610,613,634,642,646,650,653,787,792,853,857,860,902,906,909,1014,1018,1022,1030,1148,1152,1161,1241,1245,1254,1340,1347,1350,1353,1437,1542,1550,1553,1556,1563,1572,1577,1621],[11,12,13,14,21],"p",{},"AI\u002FML ワークロードの急速な普及により、GPU コンピューティングへの需要が爆発的に増加しています。",[15,16,20],"a",{"href":17,"rel":18},"https:\u002F\u002Fwww.proxmox.com\u002Fen\u002Fproxmox-virtual-environment\u002Foverview",[19],"nofollow","Proxmox VE"," の GPU パススルー機能を使えば、仮想マシンから物理 GPU に直接アクセスし、ベアメタルに迫る性能で LLM 推論、モデルトレーニング、画像生成などを実行できます。本記事では、IOMMU\u002FVFIO を使った GPU パススルーの設定から、AI ワークロードの実行までを詳細に解説します。",[11,23,24,25,30],{},"AI\u002FML 基盤を Kubernetes 上で運用するなら、",[15,26,29],{"href":27,"rel":28},"https:\u002F\u002Fwww.hexabase.com\u002Fproduct\u002Fkubo\u002Fon-premise",[19],"Kubo On-Premise"," が GPU ノードを含むフルマネージド K8s 環境を提供します。GPU リソースのスケジューリングと運用管理を自動化できます。",[32,33,35],"h2",{"id":34},"gpu-パススルーの基礎知識","GPU パススルーの基礎知識",[11,37,38,39,44],{},"GPU パススルーは、",[15,40,43],{"href":41,"rel":42},"https:\u002F\u002Fwww.kernel.org\u002Fdoc\u002Fhtml\u002Flatest\u002Fdriver-api\u002Fvfio.html",[19],"VFIO（Virtual Function io）","を介してハイパーバイザーのオーバーヘッドを最小限に抑えながら、VM に物理 GPU への直接アクセスを提供する仮想化技術です。",[46,47,49],"h3",{"id":48},"iommu-とは","IOMMU とは",[11,51,52,57],{},[15,53,56],{"href":54,"rel":55},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInput%E2%80%93output_memory_management_unit",[19],"IOMMU（Input-Output Memory Management Unit）","は、デバイスアドレスを変換するハードウェアコンポーネントで、デバイスごとに独立した「レーン」を作成します。これがパススルーの前提条件となります。",[59,60,61,69],"ul",{},[62,63,64,68],"li",{},[65,66,67],"strong",{},"intel",": vt-d（virtualization technology for directed i-o）",[62,70,71,74],{},[65,72,73],{},"AMD",": AMD-Vi（AMD io Virtualization Technology）",[46,76,78],{"id":77},"サポートされる-gpu","サポートされる GPU",[80,81,82,101],"table",{},[83,84,85],"thead",{},[86,87,88,92,95,98],"tr",{},[89,90,91],"th",{},"カテゴリ",[89,93,94],{},"GPU",[89,96,97],{},"VRAM",[89,99,100],{},"推奨用途",[102,103,104,119,133,147],"tbody",{},[86,105,106,110,113,116],{},[107,108,109],"td",{},"エントリー",[107,111,112],{},"RTX 3060 \u002F RTX 4060",[107,114,115],{},"8-12 GB",[107,117,118],{},"小規模 LLM 推論",[86,120,121,124,127,130],{},[107,122,123],{},"ミッドレンジ",[107,125,126],{},"RTX 3080 \u002F RTX 4060 Ti",[107,128,129],{},"10-16 GB",[107,131,132],{},"中規模モデル、ファインチューニング",[86,134,135,138,141,144],{},[107,136,137],{},"ハイエンド",[107,139,140],{},"RTX 3090 \u002F RTX 4090",[107,142,143],{},"24 GB",[107,145,146],{},"大規模 LLM、マルチモデル",[86,148,149,152,155,158],{},[107,150,151],{},"データセンター",[107,153,154],{},"NVIDIA P40 \u002F A100",[107,156,157],{},"24-80 GB",[107,159,160],{},"本番 AI ワークロード",[11,162,163,168],{},[15,164,167],{"href":165,"rel":166},"https:\u002F\u002Fforum.proxmox.com\u002Fthreads\u002F2025-proxmox-pcie-gpu-passthrough-with-nvidia.169543\u002F",[19],"Proxmox フォーラムの GPU パススルーガイド","では、NVIDIA GPU が最も広いサポートを提供していると述べられています。AMD GPU は ROCm が必要ですが、Ollama 等では対応ディストリビューションで動作します。",[32,170,172],{"id":171},"bios-と-proxmox-ホストの設定","BIOS と Proxmox ホストの設定",[46,174,176],{"id":175},"bios-設定","BIOS 設定",[11,178,179],{},"以下の BIOS 設定を確認します:",[181,182,183,189,195],"ol",{},[62,184,185,188],{},[65,186,187],{},"Secure Boot を無効化",": 証明書の登録が不要に",[62,190,191,194],{},[65,192,193],{},"VT-d（Intel）\u002F IOMMU（AMD）を有効化",": マザーボード BIOS の該当メニューで有効化",[62,196,197,200],{},[65,198,199],{},"ファームウェアを最新版に更新",": パススルーの互換性が向上",[46,202,203],{"id":203},"カーネルパラメータの設定",[11,205,206],{},"GRUB のコマンドラインに IOMMU パラメータを追加します:",[208,209,214],"pre",{"className":210,"code":211,"language":212,"meta":213,"style":213},"language-bash shiki shiki-themes tokyo-night","# \u002Fetc\u002Fdefault\u002Fgrub を編集\n# Intel CPU の場合\nGRUB_CMDLINE_LINUX_DEFAULT=\"quiet intel_iommu=on iommu=pt\"\n\n# AMD CPU の場合\nGRUB_CMDLINE_LINUX_DEFAULT=\"quiet amd_iommu=on iommu=pt\"\n\n# GRUB を更新して再起動\nupdate-grub\nreboot\n","bash","",[215,216,217,226,232,253,260,266,280,285,291,297],"code",{"__ignoreMap":213},[218,219,222],"span",{"class":220,"line":221},"line",1,[218,223,225],{"class":224},"sbD-w","# \u002Fetc\u002Fdefault\u002Fgrub を編集\n",[218,227,229],{"class":220,"line":228},2,[218,230,231],{"class":224},"# Intel CPU の場合\n",[218,233,235,239,243,246,250],{"class":220,"line":234},3,[218,236,238],{"class":237},"sE3pS","GRUB_CMDLINE_LINUX_DEFAULT",[218,240,242],{"class":241},"sAklC","=",[218,244,245],{"class":241},"\"",[218,247,249],{"class":248},"sPY7s","quiet intel_iommu=on iommu=pt",[218,251,252],{"class":241},"\"\n",[218,254,256],{"class":220,"line":255},4,[218,257,259],{"emptyLinePlaceholder":258},true,"\n",[218,261,263],{"class":220,"line":262},5,[218,264,265],{"class":224},"# AMD CPU の場合\n",[218,267,269,271,273,275,278],{"class":220,"line":268},6,[218,270,238],{"class":237},[218,272,242],{"class":241},[218,274,245],{"class":241},[218,276,277],{"class":248},"quiet amd_iommu=on iommu=pt",[218,279,252],{"class":241},[218,281,283],{"class":220,"line":282},7,[218,284,259],{"emptyLinePlaceholder":258},[218,286,288],{"class":220,"line":287},8,[218,289,290],{"class":224},"# GRUB を更新して再起動\n",[218,292,294],{"class":220,"line":293},9,[218,295,296],{"class":237},"update-grub\n",[218,298,300],{"class":220,"line":299},10,[218,301,302],{"class":237},"reboot\n",[11,304,305,308],{},[215,306,307],{},"iommu=pt","（パススルーモード）は、パススルーするデバイスのみに IOMMU を適用し、全体的なパフォーマンスを向上させます。",[11,310,311],{},"再起動後、IOMMU が有効であることを確認します:",[208,313,315],{"className":210,"code":314,"language":212,"meta":213,"style":213},"dmesg | grep -e DMAR -e IOMMU\n# \"DMAR: IOMMU enabled\" または類似のメッセージが表示されるべき\n",[215,316,317,340],{"__ignoreMap":213},[218,318,319,322,325,328,332,335,337],{"class":220,"line":221},[218,320,321],{"class":237},"dmesg",[218,323,324],{"class":241}," |",[218,326,327],{"class":237}," grep",[218,329,331],{"class":330},"sT800"," -e",[218,333,334],{"class":248}," DMAR",[218,336,331],{"class":330},[218,338,339],{"class":248}," IOMMU\n",[218,341,342],{"class":220,"line":228},[218,343,344],{"class":224},"# \"DMAR: IOMMU enabled\" または類似のメッセージが表示されるべき\n",[46,346,348],{"id":347},"vfio-モジュールの設定","VFIO モジュールの設定",[11,350,351,356],{},[15,352,355],{"href":353,"rel":354},"https:\u002F\u002Fproxmox.rdem-systems.com\u002Fen\u002Fblog\u002Fproxmox-hardware-passthrough-gpu-usb-pci\u002F",[19],"VFIO モジュール","をロードし、ホストの GPU ドライバーをブラックリストに登録します:",[208,358,360],{"className":210,"code":359,"language":212,"meta":213,"style":213},"# \u002Fetc\u002Fmodules に VFIO モジュールを追加\ncat >> \u002Fetc\u002Fmodules \u003C\u003CEOF\nvfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd\nEOF\n\n# ホストの GPU ドライバーをブラックリスト化\ncat > \u002Fetc\u002Fmodprobe.d\u002Fblacklist-gpu.conf \u003C\u003CEOF\nblacklist nouveau\nblacklist nvidia\nblacklist nvidiafb\nblacklist snd_hda_intel\nEOF\n",[215,361,362,367,384,389,394,399,404,408,412,417,431,437,443,449,455],{"__ignoreMap":213},[218,363,364],{"class":220,"line":221},[218,365,366],{"class":224},"# \u002Fetc\u002Fmodules に VFIO モジュールを追加\n",[218,368,369,372,375,378,381],{"class":220,"line":228},[218,370,371],{"class":237},"cat",[218,373,374],{"class":241}," >>",[218,376,377],{"class":248}," \u002Fetc\u002Fmodules",[218,379,380],{"class":241}," \u003C\u003C",[218,382,383],{"class":241},"EOF\n",[218,385,386],{"class":220,"line":234},[218,387,388],{"class":248},"vfio\n",[218,390,391],{"class":220,"line":255},[218,392,393],{"class":248},"vfio_iommu_type1\n",[218,395,396],{"class":220,"line":262},[218,397,398],{"class":248},"vfio_pci\n",[218,400,401],{"class":220,"line":268},[218,402,403],{"class":248},"vfio_virqfd\n",[218,405,406],{"class":220,"line":282},[218,407,383],{"class":241},[218,409,410],{"class":220,"line":287},[218,411,259],{"emptyLinePlaceholder":258},[218,413,414],{"class":220,"line":293},[218,415,416],{"class":224},"# ホストの GPU ドライバーをブラックリスト化\n",[218,418,419,421,424,427,429],{"class":220,"line":299},[218,420,371],{"class":237},[218,422,423],{"class":241}," >",[218,425,426],{"class":248}," \u002Fetc\u002Fmodprobe.d\u002Fblacklist-gpu.conf",[218,428,380],{"class":241},[218,430,383],{"class":241},[218,432,434],{"class":220,"line":433},11,[218,435,436],{"class":248},"blacklist nouveau\n",[218,438,440],{"class":220,"line":439},12,[218,441,442],{"class":248},"blacklist nvidia\n",[218,444,446],{"class":220,"line":445},13,[218,447,448],{"class":248},"blacklist nvidiafb\n",[218,450,452],{"class":220,"line":451},14,[218,453,454],{"class":248},"blacklist snd_hda_intel\n",[218,456,458],{"class":220,"line":457},15,[218,459,383],{"class":241},[46,461,463],{"id":462},"gpu-を-vfio-にバインド","GPU を VFIO にバインド",[11,465,466],{},"GPU の PCI アドレスとベンダー ID を特定し、VFIO ドライバーにバインドします:",[208,468,470],{"className":210,"code":469,"language":212,"meta":213,"style":213},"# GPU の PCI アドレスを確認\nlspci -v | grep -i nvidia\n# 例: 01:00.0 VGA compatible controller: NVIDIA Corporation ...\n# 例: 01:00.1 Audio device: NVIDIA Corporation ...\n\n# ベンダー ID を取得\nlspci -n -s 01:00\n# 例: 01:00.0 0300: 10de:2684 (rev a1)\n# 例: 01:00.1 0403: 10de:22ba (rev a1)\n\n# VFIO に GPU をバインド\ncat > \u002Fetc\u002Fmodprobe.d\u002Fvfio.conf \u003C\u003CEOF\noptions vfio-pci ids=10de:2684,10de:22ba disable_vga=1\nsoftdep nvidia pre: vfio-pci\nsoftdep snd_hda_intel pre: vfio-pci\nEOF\n\n# initramfs を更新して再起動\nupdate-initramfs -u -k all\nreboot\n",[215,471,472,477,495,500,505,509,514,527,532,537,541,546,559,564,569,574,579,584,590,605],{"__ignoreMap":213},[218,473,474],{"class":220,"line":221},[218,475,476],{"class":224},"# GPU の PCI アドレスを確認\n",[218,478,479,482,485,487,489,492],{"class":220,"line":228},[218,480,481],{"class":237},"lspci",[218,483,484],{"class":330}," -v",[218,486,324],{"class":241},[218,488,327],{"class":237},[218,490,491],{"class":330}," -i",[218,493,494],{"class":248}," nvidia\n",[218,496,497],{"class":220,"line":234},[218,498,499],{"class":224},"# 例: 01:00.0 VGA compatible controller: NVIDIA Corporation ...\n",[218,501,502],{"class":220,"line":255},[218,503,504],{"class":224},"# 例: 01:00.1 Audio device: NVIDIA Corporation ...\n",[218,506,507],{"class":220,"line":262},[218,508,259],{"emptyLinePlaceholder":258},[218,510,511],{"class":220,"line":268},[218,512,513],{"class":224},"# ベンダー ID を取得\n",[218,515,516,518,521,524],{"class":220,"line":282},[218,517,481],{"class":237},[218,519,520],{"class":330}," -n",[218,522,523],{"class":330}," -s",[218,525,526],{"class":248}," 01:00\n",[218,528,529],{"class":220,"line":287},[218,530,531],{"class":224},"# 例: 01:00.0 0300: 10de:2684 (rev a1)\n",[218,533,534],{"class":220,"line":293},[218,535,536],{"class":224},"# 例: 01:00.1 0403: 10de:22ba (rev a1)\n",[218,538,539],{"class":220,"line":299},[218,540,259],{"emptyLinePlaceholder":258},[218,542,543],{"class":220,"line":433},[218,544,545],{"class":224},"# VFIO に GPU をバインド\n",[218,547,548,550,552,555,557],{"class":220,"line":439},[218,549,371],{"class":237},[218,551,423],{"class":241},[218,553,554],{"class":248}," \u002Fetc\u002Fmodprobe.d\u002Fvfio.conf",[218,556,380],{"class":241},[218,558,383],{"class":241},[218,560,561],{"class":220,"line":445},[218,562,563],{"class":248},"options vfio-pci ids=10de:2684,10de:22ba disable_vga=1\n",[218,565,566],{"class":220,"line":451},[218,567,568],{"class":248},"softdep nvidia pre: vfio-pci\n",[218,570,571],{"class":220,"line":457},[218,572,573],{"class":248},"softdep snd_hda_intel pre: vfio-pci\n",[218,575,577],{"class":220,"line":576},16,[218,578,383],{"class":241},[218,580,582],{"class":220,"line":581},17,[218,583,259],{"emptyLinePlaceholder":258},[218,585,587],{"class":220,"line":586},18,[218,588,589],{"class":224},"# initramfs を更新して再起動\n",[218,591,593,596,599,602],{"class":220,"line":592},19,[218,594,595],{"class":237},"update-initramfs",[218,597,598],{"class":330}," -u",[218,600,601],{"class":330}," -k",[218,603,604],{"class":248}," all\n",[218,606,608],{"class":220,"line":607},20,[218,609,302],{"class":237},[11,611,612],{},"再起動後、バインドを確認します:",[208,614,616],{"className":210,"code":615,"language":212,"meta":213,"style":213},"lspci -nnk -s 01:00\n# \"Kernel driver in use: vfio-pci\" と表示されるべき\n",[215,617,618,629],{"__ignoreMap":213},[218,619,620,622,625,627],{"class":220,"line":221},[218,621,481],{"class":237},[218,623,624],{"class":330}," -nnk",[218,626,523],{"class":330},[218,628,526],{"class":248},[218,630,631],{"class":220,"line":228},[218,632,633],{"class":224},"# \"Kernel driver in use: vfio-pci\" と表示されるべき\n",[11,635,636,641],{},[15,637,640],{"href":638,"rel":639},"https:\u002F\u002Fkubo.hexabase.io\u002F",[19],"Kubo"," を使えば、GPU ノードの Kubernetes への統合や、NVIDIA Device Plugin による GPU リソースの自動スケジューリングが容易になります。",[32,643,645],{"id":644},"vm-の作成と-gpu-のアタッチ","VM の作成と GPU のアタッチ",[46,647,649],{"id":648},"vm-の設定","VM の設定",[11,651,652],{},"GPU パススルーに最適化された VM を作成します:",[208,654,656],{"className":210,"code":655,"language":212,"meta":213,"style":213},"# Web UI または CLI で VM を作成\nqm create 200 --name ai-workstation --memory 32768 --cores 8 \\\n  --machine q35 --bios ovmf \\\n  --cpu host \\\n  --scsihw virtio-scsi-single \\\n  --net0 virtio,bridge=vmbr0\n\n# EFI ディスクを追加\nqm set 200 --efidisk0 local-lvm:1,efitype=4m\n\n# OS ディスクを追加\nqm set 200 --scsi0 local-lvm:100,ssd=1,discard=on\n",[215,657,658,663,696,712,722,732,740,744,749,764,768,773],{"__ignoreMap":213},[218,659,660],{"class":220,"line":221},[218,661,662],{"class":224},"# Web UI または CLI で VM を作成\n",[218,664,665,668,671,675,678,681,684,687,690,693],{"class":220,"line":228},[218,666,667],{"class":237},"qm",[218,669,670],{"class":248}," create",[218,672,674],{"class":673},"sOJ5S"," 200",[218,676,677],{"class":330}," --name",[218,679,680],{"class":248}," ai-workstation",[218,682,683],{"class":330}," --memory",[218,685,686],{"class":673}," 32768",[218,688,689],{"class":330}," --cores",[218,691,692],{"class":673}," 8",[218,694,695],{"class":241}," \\\n",[218,697,698,701,704,707,710],{"class":220,"line":234},[218,699,700],{"class":330},"  --machine",[218,702,703],{"class":248}," q35",[218,705,706],{"class":330}," --bios",[218,708,709],{"class":248}," ovmf",[218,711,695],{"class":241},[218,713,714,717,720],{"class":220,"line":255},[218,715,716],{"class":330},"  --cpu",[218,718,719],{"class":248}," host",[218,721,695],{"class":241},[218,723,724,727,730],{"class":220,"line":262},[218,725,726],{"class":330},"  --scsihw",[218,728,729],{"class":248}," virtio-scsi-single",[218,731,695],{"class":241},[218,733,734,737],{"class":220,"line":268},[218,735,736],{"class":330},"  --net0",[218,738,739],{"class":248}," virtio,bridge=vmbr0\n",[218,741,742],{"class":220,"line":282},[218,743,259],{"emptyLinePlaceholder":258},[218,745,746],{"class":220,"line":287},[218,747,748],{"class":224},"# EFI ディスクを追加\n",[218,750,751,753,756,758,761],{"class":220,"line":293},[218,752,667],{"class":237},[218,754,755],{"class":248}," set",[218,757,674],{"class":673},[218,759,760],{"class":330}," --efidisk0",[218,762,763],{"class":248}," local-lvm:1,efitype=4m\n",[218,765,766],{"class":220,"line":299},[218,767,259],{"emptyLinePlaceholder":258},[218,769,770],{"class":220,"line":433},[218,771,772],{"class":224},"# OS ディスクを追加\n",[218,774,775,777,779,781,784],{"class":220,"line":439},[218,776,667],{"class":237},[218,778,755],{"class":248},[218,780,674],{"class":673},[218,782,783],{"class":330}," --scsi0",[218,785,786],{"class":248}," local-lvm:100,ssd=1,discard=on\n",[11,788,789],{},[65,790,791],{},"重要な設定ポイント:",[80,793,794,807],{},[83,795,796],{},[86,797,798,801,804],{},[89,799,800],{},"設定",[89,802,803],{},"値",[89,805,806],{},"理由",[102,808,809,820,831,842],{},[86,810,811,814,817],{},[107,812,813],{},"Machine type",[107,815,816],{},"q35",[107,818,819],{},"PCIe パススルーに必要",[86,821,822,825,828],{},[107,823,824],{},"BIOS",[107,826,827],{},"OVMF（UEFI）",[107,829,830],{},"PCIe デバイスの正しい初期化",[86,832,833,836,839],{},[107,834,835],{},"CPU type",[107,837,838],{},"host",[107,840,841],{},"CPU 機能の完全公開",[86,843,844,847,850],{},[107,845,846],{},"SCSI Controller",[107,848,849],{},"VirtIO SCSI",[107,851,852],{},"最高のディスク性能",[46,854,856],{"id":855},"gpu-のパススルー設定","GPU のパススルー設定",[11,858,859],{},"VM 設定ファイルに GPU デバイスを追加します:",[208,861,863],{"className":210,"code":862,"language":212,"meta":213,"style":213},"# \u002Fetc\u002Fpve\u002Fqemu-server\u002F200.conf に追加\n# GPU (VGA + Audio) をパススルー\nhostpci0: 01:00,pcie=1,x-vga=on\n\n# または Web UI から:\n# Hardware → Add → PCI Device → GPU を選択\n# \"All Functions\" と \"PCI-Express\" にチェック\n",[215,864,865,870,875,883,887,892,897],{"__ignoreMap":213},[218,866,867],{"class":220,"line":221},[218,868,869],{"class":224},"# \u002Fetc\u002Fpve\u002Fqemu-server\u002F200.conf に追加\n",[218,871,872],{"class":220,"line":228},[218,873,874],{"class":224},"# GPU (VGA + Audio) をパススルー\n",[218,876,877,880],{"class":220,"line":234},[218,878,879],{"class":237},"hostpci0:",[218,881,882],{"class":248}," 01:00,pcie=1,x-vga=on\n",[218,884,885],{"class":220,"line":255},[218,886,259],{"emptyLinePlaceholder":258},[218,888,889],{"class":220,"line":262},[218,890,891],{"class":224},"# または Web UI から:\n",[218,893,894],{"class":220,"line":268},[218,895,896],{"class":224},"# Hardware → Add → PCI Device → GPU を選択\n",[218,898,899],{"class":220,"line":282},[218,900,901],{"class":224},"# \"All Functions\" と \"PCI-Express\" にチェック\n",[46,903,905],{"id":904},"ゲスト-os-での-nvidia-ドライバーインストール","ゲスト OS での NVIDIA ドライバーインストール",[11,907,908],{},"VM 内で NVIDIA ドライバーと CUDA ツールキットをインストールします:",[208,910,912],{"className":210,"code":911,"language":212,"meta":213,"style":213},"# Ubuntu 24.04 の場合\n# NVIDIA ドライバーのインストール\nsudo apt update\nsudo apt install -y nvidia-driver-560\n\n# CUDA ツールキットのインストール\nwget https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fcuda\u002Frepos\u002Fubuntu2404\u002Fx86_64\u002Fcuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt update\nsudo apt install -y cuda-toolkit-12-6\n\n# GPU の動作確認\nnvidia-smi\n",[215,913,914,919,924,935,950,954,959,967,979,987,1000,1004,1009],{"__ignoreMap":213},[218,915,916],{"class":220,"line":221},[218,917,918],{"class":224},"# Ubuntu 24.04 の場合\n",[218,920,921],{"class":220,"line":228},[218,922,923],{"class":224},"# NVIDIA ドライバーのインストール\n",[218,925,926,929,932],{"class":220,"line":234},[218,927,928],{"class":237},"sudo",[218,930,931],{"class":248}," apt",[218,933,934],{"class":248}," update\n",[218,936,937,939,941,944,947],{"class":220,"line":255},[218,938,928],{"class":237},[218,940,931],{"class":248},[218,942,943],{"class":248}," install",[218,945,946],{"class":330}," -y",[218,948,949],{"class":248}," nvidia-driver-560\n",[218,951,952],{"class":220,"line":262},[218,953,259],{"emptyLinePlaceholder":258},[218,955,956],{"class":220,"line":268},[218,957,958],{"class":224},"# CUDA ツールキットのインストール\n",[218,960,961,964],{"class":220,"line":282},[218,962,963],{"class":237},"wget",[218,965,966],{"class":248}," https:\u002F\u002Fdeveloper.download.nvidia.com\u002Fcompute\u002Fcuda\u002Frepos\u002Fubuntu2404\u002Fx86_64\u002Fcuda-keyring_1.1-1_all.deb\n",[218,968,969,971,974,976],{"class":220,"line":287},[218,970,928],{"class":237},[218,972,973],{"class":248}," dpkg",[218,975,491],{"class":330},[218,977,978],{"class":248}," cuda-keyring_1.1-1_all.deb\n",[218,980,981,983,985],{"class":220,"line":293},[218,982,928],{"class":237},[218,984,931],{"class":248},[218,986,934],{"class":248},[218,988,989,991,993,995,997],{"class":220,"line":299},[218,990,928],{"class":237},[218,992,931],{"class":248},[218,994,943],{"class":248},[218,996,946],{"class":330},[218,998,999],{"class":248}," cuda-toolkit-12-6\n",[218,1001,1002],{"class":220,"line":433},[218,1003,259],{"emptyLinePlaceholder":258},[218,1005,1006],{"class":220,"line":439},[218,1007,1008],{"class":224},"# GPU の動作確認\n",[218,1010,1011],{"class":220,"line":445},[218,1012,1013],{"class":237},"nvidia-smi\n",[32,1015,1017],{"id":1016},"aiml-ワークロードの実行","AI\u002FML ワークロードの実行",[46,1019,1021],{"id":1020},"ollama-による-llm-推論","Ollama による LLM 推論",[11,1023,1024,1029],{},[15,1025,1028],{"href":1026,"rel":1027},"https:\u002F\u002Follama.com\u002F",[19],"Ollama"," は GPU パススルー環境で最も簡単に LLM を実行できるツールです:",[208,1031,1033],{"className":210,"code":1032,"language":212,"meta":213,"style":213},"# Ollama のインストール\ncurl -fsSL https:\u002F\u002Follama.com\u002Finstall | sh\n\n# サービスの起動確認\nsystemctl status ollama\n\n# モデルのダウンロードと実行\nollama pull llama3.1:70b\nollama run llama3.1:70b\n\n# API 経由でのアクセス（デフォルト: ポート 11434）\ncurl http:\u002F\u002Flocalhost:11434\u002Fapi\u002Fgenerate -d '{\n  \"model\": \"llama3.1:70b\",\n  \"prompt\": \"Explain GPU passthrough in Proxmox\"\n}'\n",[215,1034,1035,1040,1056,1060,1065,1076,1080,1085,1096,1105,1109,1114,1130,1135,1140],{"__ignoreMap":213},[218,1036,1037],{"class":220,"line":221},[218,1038,1039],{"class":224},"# Ollama のインストール\n",[218,1041,1042,1045,1048,1051,1053],{"class":220,"line":228},[218,1043,1044],{"class":237},"curl",[218,1046,1047],{"class":330}," -fsSL",[218,1049,1050],{"class":248}," https:\u002F\u002Follama.com\u002Finstall",[218,1052,324],{"class":241},[218,1054,1055],{"class":237}," sh\n",[218,1057,1058],{"class":220,"line":234},[218,1059,259],{"emptyLinePlaceholder":258},[218,1061,1062],{"class":220,"line":255},[218,1063,1064],{"class":224},"# サービスの起動確認\n",[218,1066,1067,1070,1073],{"class":220,"line":262},[218,1068,1069],{"class":237},"systemctl",[218,1071,1072],{"class":248}," status",[218,1074,1075],{"class":248}," ollama\n",[218,1077,1078],{"class":220,"line":268},[218,1079,259],{"emptyLinePlaceholder":258},[218,1081,1082],{"class":220,"line":282},[218,1083,1084],{"class":224},"# モデルのダウンロードと実行\n",[218,1086,1087,1090,1093],{"class":220,"line":287},[218,1088,1089],{"class":237},"ollama",[218,1091,1092],{"class":248}," pull",[218,1094,1095],{"class":248}," llama3.1:70b\n",[218,1097,1098,1100,1103],{"class":220,"line":293},[218,1099,1089],{"class":237},[218,1101,1102],{"class":248}," run",[218,1104,1095],{"class":248},[218,1106,1107],{"class":220,"line":299},[218,1108,259],{"emptyLinePlaceholder":258},[218,1110,1111],{"class":220,"line":433},[218,1112,1113],{"class":224},"# API 経由でのアクセス（デフォルト: ポート 11434）\n",[218,1115,1116,1118,1121,1124,1127],{"class":220,"line":439},[218,1117,1044],{"class":237},[218,1119,1120],{"class":248}," http:\u002F\u002Flocalhost:11434\u002Fapi\u002Fgenerate",[218,1122,1123],{"class":330}," -d",[218,1125,1126],{"class":241}," '",[218,1128,1129],{"class":248},"{\n",[218,1131,1132],{"class":220,"line":445},[218,1133,1134],{"class":248},"  \"model\": \"llama3.1:70b\",\n",[218,1136,1137],{"class":220,"line":451},[218,1138,1139],{"class":248},"  \"prompt\": \"Explain GPU passthrough in Proxmox\"\n",[218,1141,1142,1145],{"class":220,"line":457},[218,1143,1144],{"class":248},"}",[218,1146,1147],{"class":241},"'\n",[46,1149,1151],{"id":1150},"vllm-による高性能推論サーバー","vLLM による高性能推論サーバー",[11,1153,1154,1155,1160],{},"高スループットが必要な本番環境には、",[15,1156,1159],{"href":1157,"rel":1158},"https:\u002F\u002Fdocs.vllm.ai\u002F",[19],"vLLM"," が最適です:",[208,1162,1164],{"className":210,"code":1163,"language":212,"meta":213,"style":213},"# vLLM のインストール\npip install vllm\n\n# OpenAI 互換 API サーバーの起動\npython -m vllm.entrypoints.openai.api_server \\\n  --model meta-llama\u002FLlama-3.1-70B-Instruct \\\n  --tensor-parallel-size 1 \\\n  --gpu-memory-utilization 0.9 \\\n  --port 8000\n",[215,1165,1166,1171,1181,1185,1190,1203,1213,1223,1233],{"__ignoreMap":213},[218,1167,1168],{"class":220,"line":221},[218,1169,1170],{"class":224},"# vLLM のインストール\n",[218,1172,1173,1176,1178],{"class":220,"line":228},[218,1174,1175],{"class":237},"pip",[218,1177,943],{"class":248},[218,1179,1180],{"class":248}," vllm\n",[218,1182,1183],{"class":220,"line":234},[218,1184,259],{"emptyLinePlaceholder":258},[218,1186,1187],{"class":220,"line":255},[218,1188,1189],{"class":224},"# OpenAI 互換 API サーバーの起動\n",[218,1191,1192,1195,1198,1201],{"class":220,"line":262},[218,1193,1194],{"class":237},"python",[218,1196,1197],{"class":330}," -m",[218,1199,1200],{"class":248}," vllm.entrypoints.openai.api_server",[218,1202,695],{"class":241},[218,1204,1205,1208,1211],{"class":220,"line":268},[218,1206,1207],{"class":330},"  --model",[218,1209,1210],{"class":248}," meta-llama\u002FLlama-3.1-70B-Instruct",[218,1212,695],{"class":241},[218,1214,1215,1218,1221],{"class":220,"line":282},[218,1216,1217],{"class":330},"  --tensor-parallel-size",[218,1219,1220],{"class":673}," 1",[218,1222,695],{"class":241},[218,1224,1225,1228,1231],{"class":220,"line":287},[218,1226,1227],{"class":330},"  --gpu-memory-utilization",[218,1229,1230],{"class":673}," 0.9",[218,1232,695],{"class":241},[218,1234,1235,1238],{"class":220,"line":293},[218,1236,1237],{"class":330},"  --port",[218,1239,1240],{"class":673}," 8000\n",[46,1242,1244],{"id":1243},"docker-nvidia-container-toolkit","Docker + NVIDIA Container Toolkit",[11,1246,1247,1248,1253],{},"コンテナベースの AI ワークロードには、",[15,1249,1252],{"href":1250,"rel":1251},"https:\u002F\u002Fdocs.nvidia.com\u002Fdatacenter\u002Fcloud-native\u002Fcontainer-toolkit\u002Flatest\u002Finstall-guide.html",[19],"NVIDIA Container Toolkit"," を使用します:",[208,1255,1257],{"className":210,"code":1256,"language":212,"meta":213,"style":213},"# NVIDIA Container Toolkit のインストール\ncurl -fsSL https:\u002F\u002Fnvidia.github.io\u002Flibnvidia-container\u002Fgpgkey | \\\n  sudo gpg --dearmor -o \u002Fusr\u002Fshare\u002Fkeyrings\u002Fnvidia-container-toolkit-keyring.gpg\n# リポジトリを追加してインストール\nsudo apt install -y nvidia-container-toolkit\n\n# Docker で GPU を使用\ndocker run --gpus all nvidia\u002Fcuda:12.6.0-base-ubuntu24.04 nvidia-smi\n",[215,1258,1259,1264,1277,1294,1299,1312,1316,1321],{"__ignoreMap":213},[218,1260,1261],{"class":220,"line":221},[218,1262,1263],{"class":224},"# NVIDIA Container Toolkit のインストール\n",[218,1265,1266,1268,1270,1273,1275],{"class":220,"line":228},[218,1267,1044],{"class":237},[218,1269,1047],{"class":330},[218,1271,1272],{"class":248}," https:\u002F\u002Fnvidia.github.io\u002Flibnvidia-container\u002Fgpgkey",[218,1274,324],{"class":241},[218,1276,695],{"class":241},[218,1278,1279,1282,1285,1288,1291],{"class":220,"line":234},[218,1280,1281],{"class":237},"  sudo",[218,1283,1284],{"class":248}," gpg",[218,1286,1287],{"class":330}," --dearmor",[218,1289,1290],{"class":330}," -o",[218,1292,1293],{"class":248}," \u002Fusr\u002Fshare\u002Fkeyrings\u002Fnvidia-container-toolkit-keyring.gpg\n",[218,1295,1296],{"class":220,"line":255},[218,1297,1298],{"class":224},"# リポジトリを追加してインストール\n",[218,1300,1301,1303,1305,1307,1309],{"class":220,"line":262},[218,1302,928],{"class":237},[218,1304,931],{"class":248},[218,1306,943],{"class":248},[218,1308,946],{"class":330},[218,1310,1311],{"class":248}," nvidia-container-toolkit\n",[218,1313,1314],{"class":220,"line":268},[218,1315,259],{"emptyLinePlaceholder":258},[218,1317,1318],{"class":220,"line":282},[218,1319,1320],{"class":224},"# Docker で GPU を使用\n",[218,1322,1323,1326,1328,1331,1334,1337],{"class":220,"line":287},[218,1324,1325],{"class":237},"docker",[218,1327,1102],{"class":248},[218,1329,1330],{"class":330}," --gpus",[218,1332,1333],{"class":248}," all",[218,1335,1336],{"class":248}," nvidia\u002Fcuda:12.6.0-base-ubuntu24.04",[218,1338,1339],{"class":248}," nvidia-smi\n",[11,1341,1342,1343,1346],{},"AI ワークロードを Kubernetes 上で大規模に運用するなら、",[15,1344,29],{"href":27,"rel":1345},[19]," が NVIDIA Device Plugin の自動設定、GPU リソースクォータ、マルチテナント GPU 共有を含むフルマネージド環境を提供します。",[32,1348,1349],{"id":1349},"トラブルシューティング",[46,1351,1352],{"id":1352},"よくある問題と解決策",[80,1354,1355,1368],{},[83,1356,1357],{},[86,1358,1359,1362,1365],{},[89,1360,1361],{},"問題",[89,1363,1364],{},"原因",[89,1366,1367],{},"解決策",[102,1369,1370,1384,1395,1409,1423],{},[86,1371,1372,1375,1378],{},[107,1373,1374],{},"IOMMU グループが分離されない",[107,1376,1377],{},"ACS 非対応",[107,1379,1380,1383],{},[215,1381,1382],{},"pcie_acs_override=downstream,multifunction"," を GRUB に追加",[86,1385,1386,1389,1392],{},[107,1387,1388],{},"VM 起動時にメモリ不足",[107,1390,1391],{},"PCIe メモリピニング",[107,1393,1394],{},"VM の RAM を削減、hugepages を設定",[86,1396,1397,1400,1403],{},[107,1398,1399],{},"NVIDIA Code 43 エラー",[107,1401,1402],{},"ドライバーが仮想環境を検出",[107,1404,1405,1408],{},[215,1406,1407],{},"cpu: host"," を確認、最新ドライバーを使用",[86,1410,1411,1414,1417],{},[107,1412,1413],{},"GPU リセット問題",[107,1415,1416],{},"AMD GPU に多い",[107,1418,1419,1422],{},[215,1420,1421],{},"vendor-reset"," カーネルモジュールを使用",[86,1424,1425,1428,1431],{},[107,1426,1427],{},"音声デバイスの競合",[107,1429,1430],{},"GPU オーディオの衝突",[107,1432,1433,1436],{},[215,1434,1435],{},"snd_hda_intel"," をブラックリスト化",[208,1438,1440],{"className":210,"code":1439,"language":212,"meta":213,"style":213},"# IOMMU グループの確認\nfor d in \u002Fsys\u002Fkernel\u002Fiommu_groups\u002F*\u002Fdevices\u002F*; do\n  n=${d#*\u002Fiommu_groups\u002F}; n=${n%%\u002F*}\n  printf 'IOMMU Group %s ' \"$n\"\n  lspci -nns \"${d##*\u002F}\"\ndone\n",[215,1441,1442,1447,1468,1499,1521,1537],{"__ignoreMap":213},[218,1443,1444],{"class":220,"line":221},[218,1445,1446],{"class":224},"# IOMMU グループの確認\n",[218,1448,1449,1453,1456,1459,1462,1465],{"class":220,"line":228},[218,1450,1452],{"class":1451},"sd1Qi","for",[218,1454,1455],{"class":237}," d",[218,1457,1458],{"class":1451}," in",[218,1460,1461],{"class":248}," \u002Fsys\u002Fkernel\u002Fiommu_groups\u002F*\u002Fdevices\u002F*",[218,1463,1464],{"class":241},";",[218,1466,1467],{"class":1451}," do\n",[218,1469,1470,1473,1476,1479,1482,1485,1488,1491,1493,1496],{"class":220,"line":234},[218,1471,1472],{"class":237},"  n",[218,1474,1475],{"class":241},"=${",[218,1477,1478],{"class":237},"d",[218,1480,1481],{"class":241},"#*\u002F",[218,1483,1484],{"class":237},"iommu_groups",[218,1486,1487],{"class":241},"\u002F};",[218,1489,1490],{"class":237}," n",[218,1492,1475],{"class":241},[218,1494,1495],{"class":237},"n",[218,1497,1498],{"class":241},"%%\u002F*}\n",[218,1500,1501,1505,1507,1510,1513,1516,1519],{"class":220,"line":255},[218,1502,1504],{"class":1503},"sySf4","  printf",[218,1506,1126],{"class":241},[218,1508,1509],{"class":248},"IOMMU Group %s ",[218,1511,1512],{"class":241},"'",[218,1514,1515],{"class":241}," \"",[218,1517,1518],{"class":237},"$n",[218,1520,252],{"class":241},[218,1522,1523,1526,1529,1532,1534],{"class":220,"line":262},[218,1524,1525],{"class":237},"  lspci",[218,1527,1528],{"class":330}," -nns",[218,1530,1531],{"class":241}," \"${",[218,1533,1478],{"class":237},[218,1535,1536],{"class":241},"##*\u002F}\"\n",[218,1538,1539],{"class":220,"line":268},[218,1540,1541],{"class":1451},"done\n",[11,1543,1544,1549],{},[15,1545,1548],{"href":1546,"rel":1547},"https:\u002F\u002Fpve.proxmox.com\u002Fwiki\u002FPCI_Passthrough",[19],"Proxmox Wiki の PCI パススルーガイド","に詳細なトラブルシューティング手順が掲載されています。",[32,1551,1552],{"id":1552},"まとめ",[11,1554,1555],{},"Proxmox VE の GPU パススルーは、IOMMU と VFIO の正しい設定により、AI\u002FML ワークロードに対してベアメタルに近い GPU 性能を提供します。近年のハードウェアとドライバーの成熟により、セットアップは大幅に簡素化されています。",[11,1557,1558,1559,1562],{},"GPU を活用した AI ワークロードを Kubernetes 上で本格運用するなら、",[15,1560,29],{"href":27,"rel":1561},[19]," が最適なプラットフォームです。Proxmox の GPU パススルーと Kubo のフルマネージド K8s を組み合わせ、スケーラブルな AI 基盤を構築できます。",[11,1564,1565,1566,1571],{},"GPU パススルー環境の設計・構築に関するご相談は、",[15,1567,1570],{"href":1568,"rel":1569},"https:\u002F\u002Fwww.hexabase.com\u002Fcontact-us\u002F",[19],"お問い合わせ","からご連絡ください。",[11,1573,1574],{},[65,1575,1576],{},"関連リンク:",[59,1578,1579,1585,1591,1598,1604,1610,1615],{},[62,1580,1581],{},[15,1582,1584],{"href":1546,"rel":1583},[19],"Proxmox PCI パススルー Wiki",[62,1586,1587],{},[15,1588,1590],{"href":165,"rel":1589},[19],"Proxmox フォーラム: GPU パススルーガイド",[62,1592,1593],{},[15,1594,1597],{"href":1595,"rel":1596},"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-toolkit",[19],"NVIDIA CUDA ツールキット",[62,1599,1600],{},[15,1601,1603],{"href":1026,"rel":1602},[19],"Ollama 公式サイト",[62,1605,1606],{},[15,1607,1609],{"href":1157,"rel":1608},[19],"vLLM ドキュメント",[62,1611,1612],{},[15,1613,1252],{"href":1250,"rel":1614},[19],[62,1616,1617],{},[15,1618,1620],{"href":638,"rel":1619},[19],"Kubo ブログ",[1622,1623,1624],"style",{},"html pre.shiki code .sbD-w, html code.shiki .sbD-w{--shiki-default:#51597D;--shiki-default-font-style:italic}html pre.shiki code .sE3pS, html code.shiki .sE3pS{--shiki-default:#C0CAF5}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .sPY7s, html code.shiki .sPY7s{--shiki-default:#9ECE6A}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sT800, html code.shiki .sT800{--shiki-default:#E0AF68}html pre.shiki code .sOJ5S, html code.shiki .sOJ5S{--shiki-default:#FF9E64}html pre.shiki code .sd1Qi, html code.shiki .sd1Qi{--shiki-default:#BB9AF7}html pre.shiki code .sySf4, html code.shiki .sySf4{--shiki-default:#0DB9D7}",{"title":213,"searchDepth":228,"depth":228,"links":1626},[1627,1631,1637,1642,1647,1650],{"id":34,"depth":228,"text":35,"children":1628},[1629,1630],{"id":48,"depth":234,"text":49},{"id":77,"depth":234,"text":78},{"id":171,"depth":228,"text":172,"children":1632},[1633,1634,1635,1636],{"id":175,"depth":234,"text":176},{"id":203,"depth":234,"text":203},{"id":347,"depth":234,"text":348},{"id":462,"depth":234,"text":463},{"id":644,"depth":228,"text":645,"children":1638},[1639,1640,1641],{"id":648,"depth":234,"text":649},{"id":855,"depth":234,"text":856},{"id":904,"depth":234,"text":905},{"id":1016,"depth":228,"text":1017,"children":1643},[1644,1645,1646],{"id":1020,"depth":234,"text":1021},{"id":1150,"depth":234,"text":1151},{"id":1243,"depth":234,"text":1244},{"id":1349,"depth":228,"text":1349,"children":1648},[1649],{"id":1352,"depth":234,"text":1352},{"id":1552,"depth":228,"text":1552},"2026-05-27","Proxmox VE で NVIDIA GPU パススルーを設定し、AI\u002FML ワークロードを実行する完全ガイド。IOMMU、VFIO 設定から Ollama、vLLM の運用まで。","md","ja",{},"\u002Fblog\u002Fja\u002Fproxmox-gpu-passthrough-ai-workloads",{"title":5,"description":1652},"blog\u002Fja\u002Fproxmox-gpu-passthrough-ai-workloads",[1660,94,1661,1662,1663,1664,1665,1666],"Proxmox","パススルー","AI","機械学習","NVIDIA","VFIO","IOMMU","kKcR2DIMQ60Uq5nZPUNZAjO9byiIxqdhTlcGmDQj-cQ",1779964617055]