18323: Add CUDARequirement to extension schema
[arvados.git] / sdk / cwl / arvados_cwl / arv-cwl-schema-v1.0.yml
index 2a2e857e073e1c14aa8e294a035182f03ab40549..6f5e7980dbb7576918b97e736abbdf4240e91748 100644 (file)
@@ -295,3 +295,65 @@ $graph:
         - type: array
           items: string
       doc: One or more storages classes
+
+- type: record
+  name: PropertyDef
+  doc: |
+    Define a property that will be set on the submitted container
+    request associated with this workflow or step.
+  fields:
+    - name: propertyName
+      type: string
+      doc: The property key
+    - name: propertyValue
+      type: [Any]
+      doc: The property value
+
+
+- name: ProcessProperties
+  type: record
+  extends: cwl:ProcessRequirement
+  inVocab: false
+  doc: |
+    Specify metadata properties that will be set on the submitted
+    container request associated with this workflow or step.
+  fields:
+    class:
+      type: string
+      doc: "Always 'arv:ProcessProperties"
+      jsonldPredicate:
+        _id: "@type"
+        _type: "@vocab"
+    processProperties:
+      type: PropertyDef[]
+      jsonldPredicate:
+        mapSubject: propertyName
+        mapPredicate: propertyValue
+
+
+- name: CUDARequirement
+  type: record
+  extends: cwl:ProcessRequirement
+  inVocab: false
+  doc: |
+    Require support for Nvidia CUDA (GPU hardware acceleration).
+  fields:
+    class:
+      type: string
+      doc: 'arv:CUDARequirement'
+      jsonldPredicate:
+        _id: "@type"
+        _type: "@vocab"
+    minCUDADriverVersion:
+      type: string
+      doc: Minimum CUDA driver version to run the software, in X.Y format of the associated CUDA SDK release.
+    minCUDAHardwareCapability:
+      type: string
+      doc: Minimum CUDA hardware capability required to run the software, in X.Y format.
+    minDeviceCount:
+      type: int?
+      default: 1
+      doc: Minimum number of GPU devices to request, or 1.
+    maxDeviceCount:
+      type: int?
+      doc: Maximum number of GPU devices to request.  If not specified, same as `minDeviceCount`.