From ea09ee13da3a0048fbb923a68ce4395a322a8b11 Mon Sep 17 00:00:00 2001 From: Matt Ruffalo Date: Tue, 25 Feb 2020 10:32:43 -0500 Subject: [PATCH 1/3] If DockerGpuRequirement, add '--gpus=all' to Docker command line --- cwltool/command_line_tool.py | 4 ++++ cwltool/docker.py | 2 ++ cwltool/process.py | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cwltool/command_line_tool.py b/cwltool/command_line_tool.py index 054358f42..44474c41f 100644 --- a/cwltool/command_line_tool.py +++ b/cwltool/command_line_tool.py @@ -765,6 +765,7 @@ def calc_checksum(location: str) -> Optional[str]: interesting = { "DockerRequirement", + "DockerGpuRequirement", "EnvVarRequirement", "InitialWorkDirRequirement", "ShellCommandRequirement", @@ -940,6 +941,9 @@ def update_status_output_callback( j.tmpdir = builder.tmpdir j.stagedir = builder.stagedir + dockerGpuReq, _ = self.get_requirement("DockerGpuRequirement") + j.docker_gpu_flag = (dockerGpuReq is not None) + inplaceUpdateReq, _ = self.get_requirement("InplaceUpdateRequirement") if inplaceUpdateReq is not None: j.inplace_update = cast(bool, inplaceUpdateReq["inplaceUpdate"]) diff --git a/cwltool/docker.py b/cwltool/docker.py index e5e2ae45b..4611ca4c0 100644 --- a/cwltool/docker.py +++ b/cwltool/docker.py @@ -341,6 +341,8 @@ def create_runtime( runtime = [user_space_docker_cmd, "run"] else: runtime = ["docker", "run", "-i"] + if getattr(self, 'docker_gpu_flag', False): + runtime.append('--gpus=all') self.append_volume( runtime, os.path.realpath(self.outdir), self.builder.outdir, writable=True ) diff --git a/cwltool/process.py b/cwltool/process.py index 88c23c08c..3bbd1eccc 100644 --- a/cwltool/process.py +++ b/cwltool/process.py @@ -98,6 +98,7 @@ def filter(self, record: logging.LogRecord) -> bool: supportedProcessRequirements = [ "DockerRequirement", + "DockerGpuRequirement", "SchemaDefRequirement", "EnvVarRequirement", "ScatterFeatureRequirement", @@ -1055,7 +1056,7 @@ def validate_hints( strict=strict, vocab=self.doc_loader.vocab, ) - elif r["class"] in ("NetworkAccess", "LoadListingRequirement"): + elif r["class"] in ("NetworkAccess", "LoadListingRequirement", "DockerGpuRequirement"): pass else: _logger.info(str(sl.makeError("Unknown hint %s" % (r["class"])))) From 054c390dcc33e7201648352538c9affbd870223a Mon Sep 17 00:00:00 2001 From: Matt Ruffalo Date: Mon, 29 Jun 2020 08:44:46 -0400 Subject: [PATCH 2/3] Support GPUs in Singularity runtime too --- cwltool/singularity.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cwltool/singularity.py b/cwltool/singularity.py index 7de8ee565..39206a1bd 100644 --- a/cwltool/singularity.py +++ b/cwltool/singularity.py @@ -388,6 +388,8 @@ def create_runtime( "--ipc", "--cleanenv", ] + if getattr(self, 'docker_gpu_flag', False): + runtime.append('--nv') if _singularity_supports_userns(): runtime.append("--userns") else: From 9211ac53b3b991a7c1d464a7031fcb56f4dd17bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Aug 2021 18:24:44 +0000 Subject: [PATCH 3/3] Bump prov from 1.5.1 to 2.0.0 Bumps [prov](https://github.com/trungdong/prov) from 1.5.1 to 2.0.0. - [Release notes](https://github.com/trungdong/prov/releases) - [Changelog](https://github.com/trungdong/prov/blob/master/CHANGES.txt) - [Commits](https://github.com/trungdong/prov/compare/1.5.1...2.0.0) --- updated-dependencies: - dependency-name: prov dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index ab94f47bb..c8c6bf64f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ ruamel.yaml>=0.15,<0.17.11 rdflib>=4.2.2,<6.1 shellescape>=3.4.1,<3.9 schema-salad>=8.1.20210627200047,<9 -prov==1.5.1 +prov==2.0.0 bagit==1.8.1 mypy-extensions psutil>=5.6.6 diff --git a/setup.py b/setup.py index bf1398f97..6ee7d943e 100644 --- a/setup.py +++ b/setup.py @@ -116,7 +116,7 @@ "schema-salad >= 8.1.20210627200047, < 9", "mypy-extensions", "psutil >= 5.6.6", - "prov == 1.5.1", + "prov == 2.0.0", "bagit >= 1.6.4", "typing-extensions", "coloredlogs",