X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/213252bdc6ecb17484f5dfca10a8aba875768183..f7954ab0a45cbc302aa07fa60697363895395dde:/lib/crunchrun/docker.go?ds=sidebyside diff --git a/lib/crunchrun/docker.go b/lib/crunchrun/docker.go index c20f78bb1a..e62f2a39ba 100644 --- a/lib/crunchrun/docker.go +++ b/lib/crunchrun/docker.go @@ -108,13 +108,12 @@ func (e *dockerExecutor) config(spec containerSpec) (dockercontainer.Config, doc } if spec.CUDADeviceCount != 0 { var deviceIds []string - for _, s := range os.Environ() { + if cudaVisibleDevices := os.Getenv("CUDA_VISIBLE_DEVICES"); cudaVisibleDevices != "" { // If a resource manager such as slurm or LSF told // us to select specific devices we need to propagate that. - if strings.HasPrefix(s, "CUDA_VISIBLE_DEVICES=") { - deviceIds = strings.Split(strings.SplitN(s, "=", 2)[1], ",") - } + deviceIds = strings.Split(cudaVisibleDevices, ",") } + deviceCount := spec.CUDADeviceCount if len(deviceIds) > 0 { // Docker won't accept both non-empty @@ -216,7 +215,6 @@ func (e *dockerExecutor) Wait(ctx context.Context) (int, error) { for { select { case waitBody := <-waitOk: - e.logf("Container exited with code: %v", waitBody.StatusCode) // wait for stdout/stderr to complete <-e.doneIO return int(waitBody.StatusCode), nil