oneAPI 1.3 暫定仕様書 Rev. 1 の解説 (3)

その他

この記事は、https://www.oneapi.io/spec/ で 2023年9月14日に公開された『oneAPI 1.3 Provisional Specification Rev. 1』 (HTMLPDF) をベースにしています。原文は2000 ページ近くあり、翻訳の時間とリソースも限られるため、全文翻訳ではなく、記事形式で区切った仕様とその解説を提供することにしました。


この回では、『oneAPI 1.3 Provisional Specification Rev. 1』の「SYCL*」の節を取り上げています。

SYCL*

概要

oneAPI プログラミング言語は SYCL* と以下に示す SYCL* 拡張セットの組み合わせです。SYCL* プログラミング言語は標準 C++ をベースとしており、データ並列関数を定義し、アクセラレーター・デバイス上でそれらを起動する機能を提供します。他の並列言語とは異なり、SYCL* ではアプリケーションは同一ソースコード内にホストコードとデバイスコードの両方を混在させることができ、直感的な並列プログラミング環境を提供します。

oneAPI に準拠する実装は、Khronos Group によって公開されている 『SYCL* 2020 仕様』 (英語) に従う必要があります。

注: 2023年9月現在、SYCL* 2020仕様はリビジョン 7 が公開されていますが、iSUS ではリビジョン 6 の日本語参考訳を公開しています。

oneAPI に準拠した実装では、以下の表に示す SYCL* 拡張機能のセットも実装する必要があります。これらは、SYCL* 言語に拡張機能を提供します。これらの拡張機能の一部は、表で示すように特定のデバイスタイプでのみ必要となる場合があります。

表 1: SYCL* 拡張の表

拡張 (以下のリンクは GitHub* のサイト (英語) が開きます) CPU GPU FPGA
C-CXX-StandardLibrary 必須 必須 必要なし[1]
sycl_ext_oneapi_accessor_properties 必須 必須 必須
sycl_ext_oneapi_assert 必須 必須 必須
sycl_ext_oneapi_backend_level_zero 必須[2] 必須[2] 必須[2]
sycl_ext_oneapi_default_context 必須 必須 必須
sycl_ext_oneapi_discard_queue_events 必須 必須 必須
sycl_ext_oneapi_dot_accumulate 必須 必須 必須
sycl_ext_oneapi_enqueue_barrier 必須 必須 必須
sycl_ext_oneapi_filter_selector 必須 必須 必須
sycl_ext_oneapi_local_memory 必須 必須 必須
sycl_ext_oneapi_srgb 必須 必須 必須
sycl_ext_oneapi_sub_group_mask 必須 必須 必須
sycl_ext_oneapi_use_pinned_host_memory_property 必須 必須 必須
sycl_ext_oneapi_usm_device_read_only 必須 必須 必須
sycl_ext_intel_buffer_location 必要なし 必要なし 必須
sycl_ext_intel_dataflow_pipes 必要なし 必要なし 必須
sycl_ext_intel_device_info 必須 必須 必須
sycl_ext_intel_fpga_device_selector 必須 必須 必須
sycl_ext_intel_fpga_lsu 必要なし 必要なし 必須
sycl_ext_intel_fpga_reg 必要なし 必要なし 必須
sycl_ext_intel_kernel_args_restrict 必須 必須 必須
sycl_ext_intel_mem_channel_property 必要なし 必要なし 必須
sycl_ext_intel_usm_address_spaces 必須 必須 必須

[1]
今後必要となる可能性があります。

[2]
デバイス・バックエンドがレベルゼロである場合は必須です。


法務上の注意書き

The content of this oneAPI Specification is licensed under the Creative Commons Attribution 4.0 International License (英語). Unless stated otherwise, the sample code examples in this document are released to you under the MIT license (英語).

This specification is a continuation of Intel’s decades-long history of working with standards groups and industry/academia initiatives such as The Khronos Group*, to create and define specifications in an open and fair process to achieve interoperability and interchangeability. oneAPI is intended to be an open specification and we encourage you to help us make it better. Your feedback is optional, but to enable Intel to incorporate any feedback you may provide to this specification, and to further upstream your feedback to other standards bodies, including The Khronos Group SYCL* specification, please submit your feedback under the terms and conditions below. Any contribution of your feedback to the oneAPI Specification does not prohibit you from also contributing your feedback directly to other standard bodies, including The Khronos Group under their respective submission policies.

By opening an issue, providing feedback, or otherwise contributing to the specification, you agree that Intel will be free to use, disclose, reproduce, modify, license, or otherwise distribute your feedback at its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations.

This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice.

© Intel Corporation. Intel、インテル、Intel ロゴ、その他のインテルの名称やロゴは、Intel Corporation またはその子会社の商標です。

* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

« パート 2        目次        パート 4 »
タイトルとURLをコピーしました