From 727f0792923239d6b43e1655a08575c86a07897a Mon Sep 17 00:00:00 2001 From: codejuan Date: Tue, 6 Nov 2018 15:20:40 +0800 Subject: [PATCH] docs: how to enable nvidia gpu 2.0 in Pouch Signed-off-by: codejuan --- daemon/mgr/spec_nvidia_hook.go | 18 ++++++++--- daemon/mgr/spec_nvidia_hook_test.go | 44 +++++++++++++++++++++++---- docs/features/pouch_with_gpu.md | 38 +++++++++++++++++++++++ docs/static_files/pouch_with_gpu.png | Bin 0 -> 51997 bytes 4 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 docs/features/pouch_with_gpu.md create mode 100644 docs/static_files/pouch_with_gpu.png diff --git a/daemon/mgr/spec_nvidia_hook.go b/daemon/mgr/spec_nvidia_hook.go index e307f901d..1af14d5c2 100644 --- a/daemon/mgr/spec_nvidia_hook.go +++ b/daemon/mgr/spec_nvidia_hook.go @@ -2,6 +2,7 @@ package mgr import ( "os/exec" + "path" "github.com/alibaba/pouch/pkg/utils" @@ -9,6 +10,7 @@ import ( ) var ( + // nvidiaHookName is a custom OCI prestart hook binary to runc in order to enable GPU containers. nvidiaHookName = "nvidia-container-runtime-hook" ) @@ -25,13 +27,19 @@ func setNvidiaHook(c *Container, spec *SpecWrapper) error { return nil } - path, err := exec.LookPath(nvidiaHookName) - if err != nil { - return err + hookPath := "" + if !path.IsAbs(nvidiaHookName) { + var err error + hookPath, err = exec.LookPath(nvidiaHookName) + if err != nil { + return err + } + } else { + hookPath = nvidiaHookName } - args := []string{path} + args := []string{hookPath} nvidiaPrestart := specs.Hook{ - Path: path, + Path: hookPath, Args: append(args, "prestart"), } spec.s.Hooks.Prestart = append(spec.s.Hooks.Prestart, nvidiaPrestart) diff --git a/daemon/mgr/spec_nvidia_hook_test.go b/daemon/mgr/spec_nvidia_hook_test.go index 0065605ba..fc9938b8f 100644 --- a/daemon/mgr/spec_nvidia_hook_test.go +++ b/daemon/mgr/spec_nvidia_hook_test.go @@ -13,12 +13,18 @@ import ( func Test_setNvidiaHook(t *testing.T) { nvidiaHookName = "test-nvidia-container-runtime-hook" - installDir := "/usr/local/bin/" + installDir := "/usr/local/bin" fullname := path.Join(installDir, nvidiaHookName) + nvidiaHookName = fullname os.Remove(fullname) os.Create(fullname) os.Chmod(fullname, 0755) - path, _ := exec.LookPath(nvidiaHookName) + hookPath := "" + if !path.IsAbs(nvidiaHookName) { + hookPath, _ = exec.LookPath(nvidiaHookName) + } else { + hookPath = nvidiaHookName + } defer func() { os.Remove(fullname) }() @@ -69,10 +75,36 @@ func Test_setNvidiaHook(t *testing.T) { }, }, }, - // exec.LookPath("nvidia-container-runtime-hook") return error, - []specs.Hook{specs.Hook{ - Path: path, - Args: append([]string{path}, "prestart"), + []specs.Hook{{ + Path: hookPath, + Args: append([]string{hookPath}, "prestart"), + }}, + }, + { + "NvidiaConfig not nil, NvidiaEnv is null", + &Container{ + HostConfig: &types.HostConfig{ + Resources: types.Resources{ + NvidiaConfig: &types.NvidiaConfig{ + NvidiaDriverCapabilities: "all", + NvidiaVisibleDevices: "all", + }, + }, + }, + Config: &types.ContainerConfig{ + Env: []string{}, + }, + }, + &SpecWrapper{ + s: &specs.Spec{ + Hooks: &specs.Hooks{ + Prestart: []specs.Hook{}, + }, + }, + }, + []specs.Hook{{ + Path: hookPath, + Args: append([]string{hookPath}, "prestart"), }}, }, } diff --git a/docs/features/pouch_with_gpu.md b/docs/features/pouch_with_gpu.md new file mode 100644 index 000000000..610588ab1 --- /dev/null +++ b/docs/features/pouch_with_gpu.md @@ -0,0 +1,38 @@ +# PouchContainer with GPU + +NVIDIA uses containers to develop, test, benchmark, and deploy deep learning (DL) frameworks and HPC applications. A variety of customers used NVIDIA-Container-Runtime to containerize and run GPU accelerated workloads. The NVIDIA-Container-Runtime is the next-generation GPU-aware container runtime. It is compatible with the Open Containers Initiative (OCI) specification used by Pouch and other popular container technologies. + +## nvidia gpu runtime + +![pouch_with_pouch](../static_files/pouch_with_gpu.png) + +The figure shows how the NVIDIA-Container-Runtime integrates into Pouch. We set a custom OCI prestart hook called nvidia-container-runtime-hook to runc in order to enable GPU containers. + +## Prerequisites Installation + +Make sure you have installed the NVIDIA driver + +1. GNU/Linux x86_64 with kernel version > 3.10 +2. NVIDIA GPU with Architecture > Fermi (2.1) +3. NVIDIA drivers ~= 361.93 (untested on older versions) + +## Start GPU container + +Pouch support 2 method to start GPU container + +1. Via nvidia config API, [nvidiaconfig](https://github.com/alibaba/pouch/blob/master/docs/api/HTTP_API.md#nvidiaconfig) +2. Via Environment variables, [nvidia-container-runtime-env](https://github.com/NVIDIA/nvidia-container-runtime#environment-variables-oci-spec) + +### Via API + +```shell +pouch run -it --nvidia-capabilities=all --nvidia-visible-devs=all centos:7 bash +``` + +### Via Environment variables + +The NVIDIA Container Runtime uses environment variables in container images to specify a GPU accelerated container. + +```shell +pouch run -it -e NVIDIA_VISIBLE_DEVICES=all -e NVIDIA_DRIVER_CAPABILITIES=all centos:7 bash +``` \ No newline at end of file diff --git a/docs/static_files/pouch_with_gpu.png b/docs/static_files/pouch_with_gpu.png new file mode 100644 index 0000000000000000000000000000000000000000..4eed489011fd71ad042180a4d2bcdd82a5178894 GIT binary patch literal 51997 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 NtfZ1e*@MRc{|o&JsIve7 literal 0 HcmV?d00001