Imported from registry/profiles/resource-definition/compute/gpu.md at commit 76a4a0c89924.

IRI GPU Resource Definition Profile

Profile URI: https://iri.science/profiles/resource-definition/compute/gpu
Base Profile: https://iri.science/profiles/status/resource
Resource Type: urn:doe-iri:resource:compute:gpu
Status: Draft
Version: 1.0.0

1. Profile Applicability

This profile applies to an IRI Resource representation whose resource_type is urn:doe-iri:resource:compute:gpu. It specializes the IRI Status Resource Profile; a conforming representation MUST also satisfy that base profile. The authoritative registration record for this Resource Type URN is in Resource Type URNs.

2. Introduction

The purpose of this document is to define a common, implementation-independent representation of GPU resources within the DOE Integrated Research Infrastructure (IRI).

A GPU resource represents a graphics processing unit or similar highly parallel accelerator associated with a compute node and used to accelerate computational workloads.

Compute Node
urn:doe-iri:resource:compute:node
        │
        │ iri:has-gpu
        ▼
GPU
urn:doe-iri:resource:compute:gpu

This profile describes relatively stable device characteristics, including memory capacity, vendor-defined architecture information, and programming interfaces made available by the facility software environment.

This version of the profile does not define current utilization, allocated memory, temperature, power consumption, health, workload assignment, or availability. If represented, the semantics and update behavior of those time-varying values are governed by the applicable IRI API contract and Resource Definition Profile.

3. Taxonomy

The taxonomy defined in this section identifies the controlled GPU programming-interface vocabulary used by this profile.

urn:doe-iri
│
├── resource
│   └── compute
│       └── gpu
│
└── compute
    └── gpu-programming-interface
        ├── cuda
        ├── hip
        ├── opencl
        └── sycl

4. GPU Attributes

This Resource Definition Profile defines attributes that MAY be used to describe resources of type urn:doe-iri:resource:compute:gpu.

Except for schema_version, attributes are optional.

Attribute Version Type Description Mandatory
schema_version 1.0.0 string Version of the profile definition. yes
programming_interfaces 1.0.0 Array IRI URN string Identifies programming interfaces through which the GPU may be used in the facility environment. no
memory_gib 1.0.0 integer Configured device memory in GiB (2³⁰ bytes). no
vendor 1.0.0 string Identifies the GPU vendor when relevant. no
model 1.0.0 string Identifies the GPU model when relevant. no
architecture 1.0.0 string Identifies the vendor-defined GPU architecture or generation when relevant. no

4.1 GPU Programming Interfaces

The programming_interfaces attribute identifies programming interfaces through which the GPU may be used within the facility environment. A GPU may advertise more than one interface, so the attribute is represented as an array of registered DOE-IRI URNs from the urn:doe-iri:compute:gpu-programming-interface namespace.

URN Short name Description Status
urn:doe-iri:compute:gpu-programming-interface:cuda CUDA The GPU is usable through a CUDA programming environment when supported by the facility software stack. provisional
urn:doe-iri:compute:gpu-programming-interface:hip HIP The GPU is usable through a HIP programming environment when supported by the facility software stack. provisional
urn:doe-iri:compute:gpu-programming-interface:opencl OpenCL The GPU is usable through an OpenCL programming environment when supported by the facility software stack. provisional
urn:doe-iri:compute:gpu-programming-interface:sycl SYCL The GPU is usable through a SYCL programming environment when supported by the facility software stack. provisional

Example:

{
  "programming_interfaces": [
    "urn:doe-iri:compute:gpu-programming-interface:cuda"
  ]
}

The programming-interface vocabulary describes usable interfaces in the facility environment rather than intrinsic hardware identity alone. A facility SHOULD advertise only interfaces that are actually supported for the resource through its deployed software and driver stack.

Current software-module availability, version, or user authorization SHOULD NOT be inferred solely from the presence of a programming-interface value.

4.2 GPU Memory

The memory_gib attribute identifies configured device memory associated with the GPU resource.

For example:

{
  "memory_gib": 80
}

The value represents configured device memory and SHOULD NOT be interpreted as currently free or allocatable memory. If current memory usage is represented, its semantics and update behavior are governed by the applicable IRI API contract and Resource Definition Profile.

4.3 Vendor, Model, and Architecture

The optional vendor, model, and architecture attributes provide descriptive implementation information.

architecture is represented as a string because GPU architecture and generation naming are vendor-defined and evolve rapidly. A controlled DOE-IRI vocabulary SHOULD be introduced only if cross-facility interoperability requirements demonstrate that standardized architecture identifiers are necessary.

5 GPU JSON Schema

components:
  schemas:

    IriUrn:
      type: string
      pattern: '^urn:doe-iri:[A-Za-z0-9][A-Za-z0-9:._~-]*$'

    GpuAttributes:
      type: object
      description: >
        Attributes describing a GPU resource with resource type
        urn:doe-iri:resource:compute:gpu.
      required:
        - schema_version

      properties:

        schema_version:
          type: string
          enum:
            - "1.0.0"
          example: "1.0.0"

        programming_interfaces:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/IriUrn'

        memory_gib:
          type: integer
          format: int64
          minimum: 0

        vendor:
          type: string

        model:
          type: string

        architecture:
          type: string

6 Example GPU JSON Instance

{
  "schema_version": "1.0.0",
  "programming_interfaces": [
    "urn:doe-iri:compute:gpu-programming-interface:cuda"
  ],
  "memory_gib": 80,
  "vendor": "Example GPU Vendor",
  "model": "Example Accelerator",
  "architecture": "Example Architecture"
}

DOE Integrated Research Infrastructure — URN Registry: GPU