Skip to content

Latest commit

 

History

History
160 lines (111 loc) · 3.65 KB

SPV_INTEL_usm_storage_classes.asciidoc

File metadata and controls

160 lines (111 loc) · 3.65 KB

SPV_INTEL_usm_storage_classes

Name Strings

SPV_INTEL_usm_storage_classes

Contact

To report problems with this extension, please open a new issue at:

Contributors

  • Joe Garvey, Intel

Notice

Copyright (c) 2020 Intel Corporation. All rights reserved.

Status

Draft

Version

Last Modified Date

2024-10-11

Revision

A

Dependencies

This extension is written against the SPIR-V Specification, Version 1.5 Revision 3.

This extension requires SPIR-V 1.0.

Overview

This extension introduces two new storage classes that are sub classes of the CrossWorkgroup storage class. Using these more specific storage classes provides additional information that can enable optimization. The extension also introduces two new conversion instructions to enable converting pointers from and to these storage classes.

Extension Name

To use this extension within a SPIR-V module, the following OpExtension must be present in the module:

OpExtension "SPV_INTEL_usm_storage_classes"

New capabilities

This extension introduces a new capability:

USMStorageClassesINTEL

Token Number Assignments

OpPtrCastToCrossWorkgroupINTEL

5934

USMStorageClassesINTEL

5935

DeviceOnlyINTEL

5936

HostOnlyINTEL

5937

OpCrossWorkgroupCastToPtrINTEL

5938

Modifications to the SPIR-V Specification, Version 1.5 Revision 3

Storage Class

Modify Section 3.7, Storage Class, adding these rows to the table:

Storage Class Enabling Capabilities

5936

DeviceOnlyINTEL
A subset of the CrossWorkgroup Storage Class. Stored on the device. SYCL device allocations.

USMStorageClassesINTEL

5937

HostOnlyINTEL
A subset of the CrossWorkgroup Storage Class. Stored on the host. SYCL host allocations.

USMStorageClassesINTEL

Capability

Modify Section 3.31, Capability, adding a row to the Capability table:

Capability Implicitly Declares

5935

USMStorageClassesINTEL

Kernel

Instructions

Modify Section 3.36.11, Conversion Instructions, adding two new instructions as follows:

OpPtrCastToCrossWorkgroupINTEL

Converts a pointer’s Storage Class from a more specific class to CrossWorkgroup.

Result Type must be an OpTypePointer. Its Storage Class must be CrossWorkgroup.

Pointer must point to the DeviceOnlyINTEL or HostOnlyINTEL Storage Class.

Result Type and Pointer must point to the same type.

Capability:
USMStorageClassesINTEL

4

5934

<id>
Result Type

Result <id>

<id>
Pointer

OpCrossWorkgroupCastToPtrINTEL

Convert a pointer’s Storage Class from CrossWorkgroup to a more specific class.

Result Type must be an OpTypePointer. Result Type's Storage Class must be DeviceOnlyINTEL or HostOnlyINTEL.

Pointer must point to the CrossWorkgroup Storage Class.

Result Type and Pointer must point to the same type.

Capability:
USMStorageClassesINTEL

4

5938

<id>
Result Type

Result <id>

<id>
Pointer

Validation Rules

None.

Issues

None.

Revision History

Rev Date Author Changes

A

2020-06-08

Joe Garvey

First public draft

B

2020-06-18

Joe Garvey

Added new conversion instructions