X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/718b62dc0b6710fff949aba5ea818d2a196c3a42..926c011fb4f7a4d7722b88a19afed51c5d4bd1c4:/sdk/cwl/arvados_cwl/arvcontainer.py diff --git a/sdk/cwl/arvados_cwl/arvcontainer.py b/sdk/cwl/arvados_cwl/arvcontainer.py index 560e8979ec..2a5ff3a13a 100644 --- a/sdk/cwl/arvados_cwl/arvcontainer.py +++ b/sdk/cwl/arvados_cwl/arvcontainer.py @@ -246,7 +246,8 @@ class ArvadosContainer(JobBase): runtimeContext.pull_image, runtimeContext.project_uuid, runtimeContext.force_docker_pull, - runtimeContext.tmp_outdir_prefix) + runtimeContext.tmp_outdir_prefix, + runtimeContext.match_local_docker) network_req, _ = self.get_requirement("NetworkAccess") if network_req: @@ -291,6 +292,14 @@ class ArvadosContainer(JobBase): else: container_request["output_storage_classes"] = runtimeContext.intermediate_storage_classes.strip().split(",") + cuda_req, _ = self.get_requirement("http://commonwl.org/cwltool#CUDARequirement") + if cuda_req: + runtime_constraints["cuda"] = { + "device_count": resources.get("cudaDeviceCount", 1), + "driver_version": cuda_req["cudaVersionMin"], + "hardware_capability": aslist(cuda_req["cudaComputeCapability"])[0] + } + if self.timelimit is not None and self.timelimit > 0: scheduling_parameters["max_run_time"] = self.timelimit @@ -520,10 +529,10 @@ class RunnerContainer(Runner): if runtimeContext.debug: command.append("--debug") - if runtimeContext.storage_classes != "default": + if runtimeContext.storage_classes != "default" and runtimeContext.storage_classes: command.append("--storage-classes=" + runtimeContext.storage_classes) - if runtimeContext.intermediate_storage_classes != "default": + if runtimeContext.intermediate_storage_classes != "default" and runtimeContext.intermediate_storage_classes: command.append("--intermediate-storage-classes=" + runtimeContext.intermediate_storage_classes) if self.on_error: