この記事は、openmp.org の OpenMP API 6.0 Specification (英語) で公開されている OpenMP API Additional Definitions 2.1 (PDF) – Nov 2024 (英語) を iSUS で翻訳した日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
このドキュメントでは、OpenMP 仕様の「OpenMP コンテキスト」の項に記載されている、準拠する実装がサポートしなければならない OpenMP コンテキストに追加される値について説明します。OpenMP 5.1 以降では、以下の定義が必要です。
1.1 追加の kind-name 値
表 1.1 は、host および nohost の値に加えて、OpenMP コンテキストの kind 特性で使用できる kind-name の値を示しています。
|
kind-name |
説明 |
|
cpu |
汎用計算向けに最適化された並列デバイス |
|
gpu |
超並列スループット・デバイス |
|
fpga |
再構成可能な計算デバイス |
1.2 サポートされる vendor-name 値
表 1.2 は、OpenMP コンテキストの vendor 特性で使用できるベンダー名の値と、それらが表す組織との関係を示しています。
|
id |
vendor-name |
組織 |
|
0 |
unknown |
下記に記載されているもの以外 |
|
1 |
amd |
Advanced Micro Devices, Inc |
|
2 |
arm |
Arm Limited |
|
3 |
bsc |
Barcelona Supercomputing Center |
|
4 |
fujitsu |
Fujitsu Limited |
|
5 |
gnu |
GNU Project |
|
6 |
hpe または cray |
Hewlett Packard Enterprise |
|
7 |
ibm |
IBM Corporation |
|
8 |
Intel |
Intel Corporation |
|
9 |
llvm |
LLVM Foundation |
|
10 |
nec |
NEC Corporation |
|
11 |
nvidia |
NVIDIA Corporation |
|
12 |
ti |
Texas Instruments |
2 OpenMP 相互運用性の定義
2.1 外部ランタイムの環境値
これは、OpenMP 仕様書の「OpenMP 外部ランタイム識別子」のセクションに対応するものです。以下の定義は OpenMP 5.1 以降に存在しており、OpenMP 6.0 で追加された“hsa”を除きます。
表 2.1 と表 2.2 は、interop ディレクティブで使用できる外部ランタイム ID (foreign-runtime-id) の値について説明しています。
表 2.1: targetsync および device_context プロパティーの interop 外部ランタイム ID、それらの文字列リテラルとして使用される名前、およびそれらに関連付けられた具体的なデータ型を示します
|
foreign-runtime-id |
データ型 |
||
|
id |
名前 |
targetsync |
device_context |
|
1 |
cuda |
cudaStream_t |
N/A |
|
2 |
cuda_driver |
CUstream |
CUcontext |
|
3 |
opencl |
cl_queue |
cl_context |
|
4 |
sycl |
cl::sycl::queue |
cl::sycl::context |
|
5 |
hip |
hipStream_t |
hipCtx_t |
|
6 |
level_zero |
ze_command_queue_handle_t |
ze_context_handle_t |
|
7 |
hsa |
hsa_queue_t * |
N/A |
表 2.2: デバイスおよびプラットフォーム・プロパティーに対する、interop 外部ランタイム ID、それらの文字列リテラルとして使用される名前、およびそれらに関連付けられた具体的なデータ型を示します
|
foreign-runtime-id |
データ型 |
||
|
id |
名前 |
デバイス |
プラットフォーム |
|
1 |
cuda |
int |
N/A |
|
2 |
cuda_driver |
CUdevice |
N/A |
|
3 |
openc |
cl_device |
cl_platform |
|
4 |
sycl |
cl::sycl::device |
cl::sycl::platform |
|
5 |
hip |
hipDevice_t |
N/A |
|
6 |
level_zero |
ze_device_handle_t |
ze_driver_handle_t |
|
7 |
hsa |
hsa_agent_t * |
N/A |

