Hello OpenSHMEM community members, The Intel OpenSHMEM team is excited to announce the first open-source release of Intel® SHMEM v1.0.0. Intel SHMEM is a C++ software library that enables applications to use OpenSHMEM communication APIs with device kernels implemented in SYCL. It supports Intel HPC/AI-focused GPUs, beginning with the Intel® Data Center GPU Max Series. Intel SHMEM implements a Partitioned Global Address Space (PGAS) programming model and includes a subset of host-initiated operations as in the current OpenSHMEM standard. It also includes new device-initiated operations callable directly from GPU kernels. Below is a summarized list of features that are available in Intel SHMEM v1.0.0.
* A complete specification<https://oneapi-src.github.io/ishmem/intro.html> detailing the programming model, supported API, example programs, build and run instructions, etc. * Device and host API support for OpenSHMEM 1.5 compliant point-to-point Remote Memory Access (RMA), Atomic Memory Operations, Signaling, Memory Ordering, and Synchronization Operations. * Device and host API support for OpenSHMEM collective operations. * Device API support for SYCL work-group and sub-group level extensions of Remote Memory Access, Signaling, Collective, Memory Ordering, and Synchronization Operations. * Support of C++ template function routines replacing the C11 Generic selection routines from the OpenSHMEM specification. * GPU RDMA (Remote Direct Memory Access) support when configured with Sandia OpenSHMEM with suitable Libfabric providers for high-performance networking services. * Choice of device memory (default) or Unified Shared Memory for the SHMEM Symmetric Heap. * A comprehensive set of unit tests for functionality of core operations. * A suite of performance benchmarks covering device-initiated operation performance for a subset of the operations. * An implementation of a 2D stencil kernel utilizing ISHMEM RMA operations. * Examples to illustrate different use cases of ISHMEM functionalities. * A launcher script to launch ISHMEM applications on the available SYCL devices in the system with the correct mapping. The full source code of Intel SHMEM v1.0.0 can be accessed through the GitHub repo: https://github.com/oneapi-src/ishmem. Please follow the instructions in README.md<https://github.com/oneapi-src/ishmem/blob/main/README.md> for how to build, install, and use Intel SHMEM in your application. Please refer to the examples given here<https://oneapi-src.github.io/ishmem/writing_programs.html> for how to write programs utilizing the Intel SHMEM APIs. Please also look at example codes<https://github.com/oneapi-src/ishmem/tree/main/examples> which demonstrate the usage of various APIs. If you would like to contribute to the project or raise any issues, please follow the guidelines provided in CONTRIBUTING.md<https://github.com/oneapi-src/ishmem/blob/main/CONTRIBUTING.md>. For any other questions, please send an email to ishmem-disc...@intel.com<mailto:ishmem-disc...@intel.com>. Enjoy! The Intel OpenSHMEM Team