+
+
+- name: cwltool:CUDARequirement
+ type: record
+ extends: cwl:ProcessRequirement
+ inVocab: false
+ doc: |
+ Require support for NVIDA CUDA (GPU hardware acceleration).
+ fields:
+ class:
+ type: string
+ doc: 'cwltool:CUDARequirement'
+ jsonldPredicate:
+ _id: "@type"
+ _type: "@vocab"
+ cudaVersionMin:
+ type: string
+ doc: |
+ Minimum CUDA version to run the software, in X.Y format. This
+ corresponds to a CUDA SDK release. When running directly on
+ the host (not in a container) the host must have a compatible
+ CUDA SDK (matching the exact version, or, starting with CUDA
+ 11.3, matching major version). When run in a container, the
+ container image should provide the CUDA runtime, and the host
+ driver is injected into the container. In this case, because
+ CUDA drivers are backwards compatible, it is possible to
+ use an older SDK with a newer driver across major versions.
+
+ See https://docs.nvidia.com/deploy/cuda-compatibility/ for
+ details.
+ cudaComputeCapability:
+ type:
+ - 'string'
+ - 'string[]'
+ doc: |
+ CUDA hardware capability required to run the software, in X.Y
+ format.
+
+ * If this is a single value, it defines only the minimum
+ compute capability. GPUs with higher capability are also
+ accepted.
+
+ * If it is an array value, then only select GPUs with compute
+ capabilities that explicitly appear in the array.
+ cudaDeviceCountMin:
+ type: ['null', int, cwl:Expression]
+ default: 1
+ doc: |
+ Minimum number of GPU devices to request. If not specified,
+ same as `cudaDeviceCountMax`. If neither are specified,
+ default 1.
+ cudaDeviceCountMax:
+ type: ['null', int, cwl:Expression]
+ doc: |
+ Maximum number of GPU devices to request. If not specified,
+ same as `cudaDeviceCountMin`.
+
+- name: UsePreemptible
+ type: record
+ extends: cwl:ProcessRequirement
+ inVocab: false
+ doc: |
+ Specify a workflow step should opt-in or opt-out of using preemptible (spot) instances.
+ fields:
+ class:
+ type: string
+ doc: "Always 'arv:UsePreemptible"
+ jsonldPredicate:
+ _id: "@type"
+ _type: "@vocab"
+ usePreemptible: boolean
+
+- name: OutputCollectionProperties
+ type: record
+ extends: cwl:ProcessRequirement
+ inVocab: false
+ doc: |
+ Specify metadata properties that will be set on the output
+ collection associated with this workflow or step.
+ fields:
+ class:
+ type: string
+ doc: "Always 'arv:OutputCollectionProperties"
+ jsonldPredicate:
+ _id: "@type"
+ _type: "@vocab"
+ outputProperties:
+ type: PropertyDef[]
+ jsonldPredicate:
+ mapSubject: propertyName
+ mapPredicate: propertyValue