diff --git a/lib/galaxy/tool_util/deps/requirements.py b/lib/galaxy/tool_util/deps/requirements.py
index 10f2c082928..1724001902f 100644
--- a/lib/galaxy/tool_util/deps/requirements.py
+++ b/lib/galaxy/tool_util/deps/requirements.py
@@ -233,7 +233,7 @@ ResourceType = Literal[
"ram_max",
"tmpdir_min",
"tmpdir_max",
- "cuda_runtime_min",
+ "cuda_version_min",
"cuda_compute_capability",
"gpu_memory_min",
"cuda_device_count_min",
@@ -277,7 +277,7 @@ def resource_requirements_from_list(requirements) -> List[ResourceRequirement]:
"ramMax": "ram_max",
"tmpdirMin": "tmpdir_min",
"tmpdirMax": "tmpdir_max",
- "cudaRuntimeMin": "cuda_runtime_min",
+ "cudaVersionMin": "cuda_version_min",
"cudaComputeCapability": "cuda_compute_capability",
"gpuMemoryMin": "gpu_memory_min",
"cudaDeviceCountMin": "cuda_device_count_min",
diff --git a/lib/galaxy/tool_util/xsd/galaxy.xsd b/lib/galaxy/tool_util/xsd/galaxy.xsd
index af940ae3f8d..498b3a320b8 100644
--- a/lib/galaxy/tool_util/xsd/galaxy.xsd
+++ b/lib/galaxy/tool_util/xsd/galaxy.xsd
@@ -6793,7 +6793,7 @@ and ``bibtex`` are the only supported options.
Maximum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20 bytes), if runtime allows it (not yet implemented in Galaxy).
-
+
Minimum CUDA (runtime link library) runtime version, if runtime allows it (not yet implemented in Galaxy).
diff --git a/test/functional/tools/resource_requirements.xml b/test/functional/tools/resource_requirements.xml
index 5ad4ccc06fd..96a5641f720 100644
--- a/test/functional/tools/resource_requirements.xml
+++ b/test/functional/tools/resource_requirements.xml
@@ -6,6 +6,11 @@
2>
+ 10.2
+ 6.1
+ 4042
+ 1
+ 2
$output
diff --git a/test/unit/tool_util/test_parsing.py b/test/unit/tool_util/test_parsing.py
index a5d709119a4..b87dab14f2a 100644
--- a/test/unit/tool_util/test_parsing.py
+++ b/test/unit/tool_util/test_parsing.py
@@ -31,6 +31,11 @@ TOOL_XML_1 = """
mycool/bwa
bwa
1
+ 10.2
+ 6.1
+ 4042
+ 1
+ 2
@@ -125,6 +130,16 @@ requirements:
version: 1.0.1
- type: resource
cores_min: 1
+ - type: resource
+ cuda_version_min: 10.2
+ - type: resource
+ cuda_compute_capability: 6.1
+ - type: resource
+ gpu_memory_min: 4042
+ - type: resource
+ cuda_device_count_min: 1
+ - type: resource
+ cuda_device_count_max: 2
containers:
- type: docker
identifier: "awesome/bowtie"
@@ -311,6 +326,11 @@ class TestXmlLoader(BaseLoaderTestCase):
assert requirements[0].type == "package"
assert list(containers)[0].identifier == "mycool/bwa"
assert resource_requirements[0].resource_type == "cores_min"
+ assert resource_requirements[1].resource_type == "cuda_version_min"
+ assert resource_requirements[2].resource_type == "cuda_compute_capability"
+ assert resource_requirements[3].resource_type == "gpu_memory_min"
+ assert resource_requirements[4].resource_type == "cuda_device_count_min"
+ assert resource_requirements[5].resource_type == "cuda_device_count_max"
assert not resource_requirements[0].runtime_required
def test_outputs(self):
@@ -486,8 +506,13 @@ class TestYamlLoader(BaseLoaderTestCase):
"resolve_dependencies": False,
"shell": "/bin/sh",
}
- assert len(resource_requirements) == 1
+ assert len(resource_requirements) == 6
assert resource_requirements[0].to_dict() == {"resource_type": "cores_min", "value_or_expression": 1}
+ assert resource_requirements[1].to_dict() == {"resource_type": "cuda_version_min", "value_or_expression": 10.2}
+ assert resource_requirements[2].to_dict() == {"resource_type": "cuda_compute_capability", "value_or_expression": 6.1}
+ assert resource_requirements[3].to_dict() == {"resource_type": "gpu_memory_min", "value_or_expression": 4042}
+ assert resource_requirements[4].to_dict() == {"resource_type": "cuda_device_count_min", "value_or_expression": 1}
+ assert resource_requirements[5].to_dict() == {"resource_type": "cuda_device_count_max", "value_or_expression": 2}
def test_outputs(self):
outputs, output_collections = self._tool_source.parse_outputs(object())