awesome-oneapi
An Awesome list of oneAPI projects
https://github.com/uxlfoundation/awesome-oneapi
Last synced: about 22 hours ago
JSON representation
-
Table of Contents
-
Misc
- FIRESTARTER - FIRESTARTER, a processer stress test utility, maximizes the energy consumption of 64-Bit x86 processors by generating heavy load on the execution units as well as transferring data between the cores and multiple levels of the memory hierarchy.
-
Tools and Development
- HPCToolKit - HPCToolkit is an open-source performance tool that is in some respects similar to VTune though it also works on Power and ARM architectures. It also works on NVIDIA and AMD GPUs. Our aim is to also use it for performance analysis of Intel GPUs with Intel’s OpenCL to our targets as a prelude to A0
- PySYCL - SYCL functionalities within Python for GPU targeted development.
- dedekind-MKL - Selected BLAS and LAPACK Java bindings for Intel's oneAPI Math Kernel Library (oneMKL) on Windows and Linux.
- JAX: Artificial Intelligence for everyone. - JAX (Just an Artificial Intelligence Extended) is an optimized version of the openSUSE Linux image to work with oneAPI. This platform was designed to facilitate the access and development of AI applications.
- ArrayFire - oneAPI Backend - ArrayFire is a general-purpose tensor library that simplifies the process of software development for the parallel architectures found in CPUs GPUs and other hardware acceleration devices. This project is to develop a oneAPI backend to the library which currently supports CUDA OpenCL and x86.
- ArrayFire - Rust Bindings - Rust bindings for ArrayFire a general-purpose tensor library that simplifies the process of software development for the parallel architectures found in CPUs GPUs and other hardware acceleration devices. This project is to develop a oneAPI backend to the library which currently supports CUDA OpenCL and x86.
- amrex-sycl - A SYCL plug-in to run AMReX apps on AMD/Nvidia GPUs. The plug-in consists of a build script and code patches which extend AMReX's SYCL capability beyond Intel GPUs.
- chip-spv - The "chip spv" project allows for the portability of HIP and CUDA applications to platforms supporting SPIR-V. Currently, it offers support for OpenCL and Level-Zero as low-level runtime alternatives.
- dpctl - Python SYCL bindings and SYCL-based Python Array API library.
- formulog - Formulog is a logic programming language that supports Datalog, SMT queries, and first-order functional programming. It requires JRE 11 and a supported SMT solver, such as Z3, Boolector, CVC4, or Yices.
- HeCBench - The hecbench repository contains a collection of benchmarks for studying performance portability and productivity with various heterogeneous computing languages.The benchmarks are divided into categories like computer vision, bioinformatics, and finance.
- kharma - Kokkos-based High-Accuracy Relativistic Magnetohydrodynamics with AMR. KHARMA is an implementation of the HARM scheme for gerneral relativistic magnetohydrodynamics (GRMHD) in C++. It is based on the Parthenon AMR infrastructure, using Kokkos for parallelism and GPU support.
- Kokkos - Kokkos Core implements a programming model in C++ for writing performance portable applications targeting all major HPC platforms. For that purpose it provides abstractions for both parallel execution of code and data management. Kokkos is designed to target complex node architectures with N-level memory hierarchies and multiple types of execution resources. It currently can use CUDA, HIP, SYCL, HPX, OpenMP and C++ threads as backend programming models with several other backends in development.
- levelzero-jni - Intel LevelZero JNI library for TornadoVM. This project is a Java Native Interface (JNI) binding for Intel's Level Zero. This library is as designed to be as closed as possible to the LevelZero API for C++.
- libxsmm - LIBXSMM is a library for specialized dense and sparse matrix operations as well as for deep learning primitives such as small convolutions.
- mixbench - A GPU benchmark tool for evaluating GPUs and CPUs on mixed operational intensity kernels (CUDA, OpenCL, HIP, SYCL, OpenMP)
- numba-dpex - Numba dpex is an extension for the Numba Python JIT compiler that provides a kernel programming API and an offload feature. It supports devices including Intel CPUs, integrated GPUs, and discrete GPUs.
- oneapi-asp - Intel® oneAPI Accelerator Support Package (ASP) for Open FPGA Stack (OFS)
- oneapi-containers - The Intel OneAPI Containers simplify programming by delivering the tools to deploy applications and solutions on various architectures. These containers allow developers to set up and distribute environments for profiling and execute applications built with OneAPI toolkits.
- oneAPI.jl - The oneapi.jl GitHub project provides support for working with the oneapi unified programming model and offers low-level wrappers for the level zero library, kernel programming, and high-level array programming capabilities.
- OpenVisualCloud Dockerfiles - This repository contains Docker build files for software stacks and services designed for media delivery, media analytics, cloud gaming and graphics, and immersive media.
- p2rng - A modern header-only C++ library for parallel algorithmic (pseudo) random number generation supporting OpenMP, CUDA, ROCm and oneAPI.
- PTXprofiler - A simple profiler to count Nvidia PTX assembly instructions of OpenCL/SYCL/CUDA kernels for roofline model analysis.
- QSVEnc - QSVenc is a software developed to investigate the performance and image quality of the hw encoder QSV of Intel. It is a command line version that runs independently and a plugin for AviUtl.
- RayBNN_Raytrace - Ray tracing library using GPUs, CPUs, and FPGAs via CUDA, OpenCL, and oneAPI
- RcppParallel - The rcppparallel project provides high-level functions for parallel programming with Rcpp and supports using Intel TBB for performance on Windows, macOS, and Linux systems.
- R-oneMKL - The oneMKL package establishes the connection between the R environment and Intel oneAPI Math Kernel Library (oneMKL), a prerequisite of using oneMKL.MatrixCal package. Specifically, oneMKL provides necessary header files and dynamic library files to R, and imports files from the packages mkl, mkl-include, and intel-openmp from Anaconda.
- SimSYCL - SimSYCL is a single-threaded, synchronous, library-only implementation of the SYCL 2020 specification. It enables you to test your SYCL applications against simulated hardware of different characteristics and discover bugs with its extensive verification capabilities.
- Spyker - High-performance Spiking Neural Networks Library Written From Scratch with C++ and Python Interfaces.
- SYCLomatic - The SycloMatic project helps developers migrate code to the SYCL heterogeneous programming model. Daily builds are available, but not rigorously tested for production quality control.
- SYnergy - Energy Measurement and Frequency Scaling for SYCL applications.
- SYCLops - A SYCL-specific LLVM-to-MLIR converter.
- syclreduce - This is a tiny package implementing what is a giant unmet need in SYCL2020 - proper reductions. Want to sum a vector coming from every thread in a kernel launch? Want to accumulate a couple different kinds of diagnostic output from a kernel? Too bad. SYCL doesn't have full documentation on how span<> works, and you'll easily get lost writing your own undefined type reducer.
- TAU Performance System - The TAU Performance System® supports profiling and tracing of programs written using the Intel OneAPI. Intel OneAPI provides two interfaces for programming - OpenCL and DPC++/SYCL for CPUs and GPUs. TAU supports both - the OpenCL profiling interface and Intel Level Zero API to observe performance.
- TornadoVM - TornadoVM is an open-source software technology that automatically accelerates Java programs on multi-core CPUs GPUs and FPGAs.
- toyBrot - toyBrot is a raymarching fractal generator that is used both as a simple benchmarking tool and a study tool for parallelisation. The code is is implemented with over 10 different technologies including Intel TBB ISPC and SYCL (with support for oneAPI)
- XFluids - a unified cross-architecture heterogeneous CFD solver that suports Nvidia, Amd and Intel GPUs.
- ZFP - zfp is a compressed format for representing multidimensional floating-point and integer arrays. zfp provides compressed-array classes that support high throughput read and write random access to individual array elements. zfp also supports serial and parallel compression of whole arrays for applications that read and write large data sets to and from disk.
- chip-spv - The "chip spv" project allows for the portability of HIP and CUDA applications to platforms supporting SPIR-V. Currently, it offers support for OpenCL and Level-Zero as low-level runtime alternatives.
- Open-source Scientific Applications and Benchmarks - This repository contains a collection of data-parallel programs for evaluating oneAPI direct programming. Each program is written with CUDA, SYCL, and OpenMP target offloading. Intel® DPC++ Compatibility Tool (DPCT) can convert a CUDA program to a SYCL program.
- Hypre - Parallel solvers for sparse linear systems featuring multigrid methods.
- compadre - The Compadre Toolkit provides a performance portable solution for the parallel evaluation of computationally dense kernels. The toolkit specifically targets the Generalized Moving Least Squares (GMLS) approach, which requires the inversion of small dense matrices. The result is a set of weights that provide the information needed for remap or entries that constitute the rows of some globally sparse matrix.
- TESSE - This is the C++ API for the Template Task Graph (TTG) programming model for flowgraph-based composition of high-performance algorithms executable on distributed heterogeneous computer platforms. The TTG API abstracts out the details of the underlying task and data flow runtime; the current realization is implemented using MADNESS and PaRSEC runtimes as backends.
- DistributedFFT - A Highly Efficient GPU Framework for Fast Fourier Transform across Mixed Nodes. This library is being developed to support highly efficient distributed FFT computation on multicore CPU and GPU architectures.
- HPAT - High Performance Analytics Toolkit (HPAT) scales analytics/ML codes in Python to bare-metal cluster/cloud performance automatically. It compiles a subset of Python (Pandas/Numpy) to efficient parallel binaries with MPI, requiring only minimal code changes
- XJoin - Portable, parallel hash join across diverse XPU architectures with oneAPI. XJoin implements the hash join database operator. It is the DPC++ implementation of the hash join operator originally written in CUDA.
- Quinoa - Quinoa is a set of computational tools that enables research and numerical analysis in fluid dynamics. Using the Charm++ runtime system, it employs asynchronous (or non-blocking) parallel programming and decompose computational problems into a large number of work units (that may be more than the available number of processors) enabling arbitrary overlap of parallel computation, communication, input, and output.
- Altis-SYCL - Altis-SYCL is a SYCL-based implementation of the Altis GPGPU benchmark suite (originally written in CUDA) for CPUs, GPUs, and FPGAs.
- OneAPI Crystal - This library is the DPC++ porting (and extension) of the Crystal library, originally written in CUDA. It Implements a collection of block-wide device functions that can be used to implement high performance implementations of SQL queries on CPUs and GPUs.
- SYCLops - A SYCL-specific LLVM-to-MLIR converter.
-
-
Tutorials
-
Tools and Development
- 50YearsOfRayTracing - This GitHub project is focused on ray tracing and covers several techniques and models developed from 1968 to 1997, with a focus on physically based rendering.
- data-parallel-CPP - The Data Parallel C Book Source Samples repository contains code that accompanies the Data Parallel C: Mastering DPC for Programming of Heterogeneous Systems using C++ and SYCL book.
- efficient-dl-systems - This repository contains materials for the Efficient Deep Learning Systems course taught at the HSE University and Yandex School of Data Analysis.
- Jurassic - Hunting Dinosaur bones using AI
- syclacademy - SYCL Academy, a set of learning materials for SYCL heterogeneous programming
- Molecular Dynamics tutorial using GROMACS and PACKMOL - A tutorial step by step to run a classic Molecular Dynamics Simulation of a protein using GROMACS and building the ions box with PACKMOL.
- saxpy - Parallel saxpy done in several ways as an exercise for understanding the differences between CUDA and SYCL.
-
Programming Languages
Sub Categories
Keywords
deep-learning
33
machine-learning
29
cuda
23
pytorch
20
gpu
19
sycl
17
python
13
tensorflow
12
cpp
10
intel
10
hpc
10
scikit-learn
9
oneapi
9
opencl
9
ai-starter-kit
9
openvino
8
gpu-computing
8
inference
8
onnx
7
raytracing
7
openmp
7
neural-network
7
parallel-computing
7
computer-vision
6
hip
6
rendering
6
path-tracing
6
ray-tracing
5
c-plus-plus
5
quantization
5
gpgpu
4
high-performance-computing
4
kokkos
4
visualization
4
rust
4
object-detection
4
distributed-training
4
java
4
computer-graphics
4
onnxruntime
4
simulation
4
linear-algebra
4
path-tracer
3
deep-neural-networks
3
numpy
3
intel-xpu
3
arrayfire
3
cpu
3
ai
3
volume-rendering
3