oneAPI-samples

oneAPI-samples

Samples for Intel® oneAPI Toolkits

Stars: 915

Visit
 screenshot

The oneAPI-samples repository contains a collection of samples for the Intel oneAPI Toolkits. These samples cover various topics such as AI and analytics, end-to-end workloads, features and functionality, getting started samples, Jupyter notebooks, direct programming, C++, Fortran, libraries, publications, rendering toolkit, and tools. Users can find samples based on expertise, programming language, and target device. The repository structure is organized by high-level categories, and platform validation includes Ubuntu 22.04, Windows 11, and macOS. The repository provides instructions for getting samples, including cloning the repository or downloading specific tagged versions. Users can also use integrated development environments (IDEs) like Visual Studio Code. The code samples are licensed under the MIT license.

README:

oneAPI Samples

The oneAPI-samples repository contains samples for the Intel® oneAPI Toolkits.

The contents of the default branch in this repository are meant to be used with the most recent released version of the Intel® oneAPI Toolkits.

Find oneAPI Samples

You can find samples by browsing the oneAPI Samples Catalog. Using the catalog you can search on the sample titles or descriptions.

You can refine your browsing or searching through filtering on the following:

  • Expertise (Getting Started, Tutorial, etc.)
  • Programming language (C++, Python, or Fortran)
  • Target device (CPU GPU, and FPGA)

Get the oneAPI Samples

Clone the repository by entering the following command:

git clone https://github.com/oneapi-src/oneAPI-samples.git

Alternatively, you can download a zip file containing the primary branch in repository.

  1. Click the Code button.
  2. Select Download ZIP from the menu options.
  3. After downloading the file, unzip the repository contents.

Get Earlier Versions of the oneAPI Samples

If you need samples for an earlier version of any of the Intel® oneAPI Toolkits, then use a tagged version of the repository that corresponds with the toolkit version.

Clone an earlier version of the repository using Git by entering a command similar to the following:

git clone -b <tag> https://github.com/oneapi-src/oneAPI-samples.git

where <tag> is the GitHub tag corresponding to the toolkit version number, like 2024.2.0.

Alternatively, you can download a zip file containing a specific tagged version of the repository.

  1. Select the appropriate tag.
  2. Click the Code button.
  3. Select Download ZIP from the menu options.
  4. After downloading the file, unzip the repository contents.

Getting Started with oneAPI Samples

The best oneAPI sample to start with depends on what you are trying to learn or types of problems you are trying to solve.

If you want to learn about... Start with...
the basics of writing, compiling, and building programs for CPUs, GPUs, or FPGAs Simple Add or Vector Add samples
(You can use these samples as starter projects by removing unwanted elements and adding your code and build requirements.)
the basics of using artificial intelligence Getting Started Samples for AI Tools
the basics of image rendering workloads and ray tracing Getting Started Samples for Intel® oneAPI Rendering Toolkit (Render Kit)
how to modify or create build files for SYCL-compliant projects Vector Add sample

Note: The README.md included with each sample provides build instructions for all supported operating system. For samples run in Jupyter Notebooks, you might need to install or configure additional frameworks or package managers if you do not already have them on your system.

Using Integrated Development Environments (IDE)

If you prefer to use an Integrated Development Environment (IDE) with these samples, you can download Visual Studio Code for use on Windows*, Linux*, and macOS*.

Repository Structure

The oneAPI-sample repository is organized by high-level categories.

Platform Validation

Samples in this release are validated on the following platforms.

Ubuntu 22.04

12th Gen Intel(R) Core(TM) i9-12900
Intel(R) UHD Graphics 770 3.0 ; (gen12, AlderLake-S GT1 [8086:4680])
Opencl driver: Intel(R) FPGA Emulation Platform for OpenCL(TM), Intel(R) FPGA Emulation Device OpenCL 1.2 [2024.17.3.0.08_160000]
Level Zero driver: Intel(R) Level-Zero, Intel(R) UHD Graphics 770 1.3 [1.3.28202]
oneAPI package version:
‐ Intel oneAPI Base Toolkit Build Version: 2024.2.0.634
‐ Intel oneAPI HPC Toolkit Build Version: 2024.2.0.635 \

Windows 11

12th Gen Intel(R) Core(TM) i9-12900 Intel(R) UHD Graphics 770 3.0 ; (gen12, AlderLake-S GT1 [8086:4680])
Opencl driver: Intel(R) FPGA Emulation Platform for OpenCL(TM), Intel(R) FPGA Emulation Device OpenCL 1.2 [2024.17.3.0.08_160000]
Level Zero driver: Intel(R) Level-Zero, Intel(R) UHD Graphics 770 1.3 [1.3.28597]
oneAPI package version:
‐ Intel oneAPI Base Toolkit Build Version: 2024.2.0.635
‐ Intel oneAPI HPC Toolkit Build Version: 2024.2.0.633 \

Known Issues and Limitations

Windows

  • If you are using Microsoft Visual Studio* 2019, you must use Microsoft Visual Studio 2019 version 16.4.0 or newer.
  • Windows support for the FPGA code samples is limited to the FPGA emulator and optimization reports. Only Linux supports FPGA hardware compilation. See any FPGA code sample README.md for more details.
  • If you encounter Error MSB6003 The specified task executable ... could not be run... when building a sample program, it might be due to the length of the directory path. Move the build directory to a location with a shorter path. Build the sample in the new location.

Additional Resources for Code Samples

A curated list of samples from oneAPI based projects, libraries, and tools. In addition, the most exciting samples from other AI projects that are not necessarily based on oneAPI are also listed here to provide you with the latest and valuable resources for augmenting your productivity.

  • OpenVINO™ notebooks: A collection of ready-to-run Jupyter notebooks for learning and experimenting with the OpenVINO™ Toolkit, an open-source AI toolkit that makes it easier to write once, deploy anywhere. The notebooks introduce OpenVINO basics and teach developers how to leverage the API for optimized deep learning inference.
  • Intel® Gaudi® Tutorials: Tutorials with step-by-step instructions for running PyTorch and PyTorch Lightning models on the Intel Gaudi AI Processor for training and inferencing, from beginner level to advanced users.
  • Powered-by-Intel Leaderboard: This leaderboard celebrates and increases the discoverability of models developed on Intel hardware by the AI developer community. We provide developers with sample code and resources (developer programs) to deploy (inference) AI PC, Intel® Xeon® Scalable processors, Intel® Gaudi® processors, Intel® Arc™ GPUs, and Intel® Data Center GPUs.
  • Intel® AI Reference Models: This repository contains links to pre-trained models, sample scripts, best practices, and step-by-step tutorials for many popular open-source machine learning models optimized by Intel to run on Intel® Xeon® Scalable processors and Intel® Data Center GPUs.
  • awesome-oneapi: A community sourced list of awesome oneAPI and SYCL projects for solutions across a wide range of industry segments.
  • Generative AI Examples: A collection of GenAI examples such as ChatQnA, Copilot, which illustrate the pipeline capabilities of the Open Platform for Enterprise AI (OPEA) project. OPEA is an ecosystem orchestration framework to integrate performant GenAI technologies & workflows leading to quicker GenAI adoption and business value.

Licenses

Code samples are licensed under the MIT license. See License.txt for details.

Third-party program licenses can be found here: third-party-programs.txt.

Notices and Disclaimers

© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for oneAPI-samples

Similar Open Source Tools

For similar tasks

For similar jobs