IRIS

From Edge To Exascale

A unified framework across multiple programming platforms

IRIS enables programmers to write portable programs across diverse heterogeneous architectures from edge to exascale. An IRIS application can exploit multiple programming platforms including CUDA, Hexagon, HIP, Level Zero, OpenCL, and OpenMP at the same time. #Tasking #CPU #GPU #FPGA #DSP #C/C++ #Fortran #Python #Snapdragon #Summit

IRIS is developed by Oak Ridge National Laboratory and is freely available under the BSD 3-Clause license.

GitHub

 

Features

Orchestrating multiple programming platforms

IRIS provides task-based programming and execution models. A task is portable across all the available programming platforms and can be run on any accelerator in the system.

Flexible task scheduling and portable applications

IRIS portable tasks enable flexible task scheduling across different accelerators and application portability across different hardware configurations.

Write once, build once, run anywhere

Programmers do not need to re-compile and even re-link their applications for different target architectures. IRIS automatically discovers all the available accelerators and their programming platforms in the target system at run time, and runs the applications on top of them.

Customizable plugins

Programmers can write their own new custom scheduling policies, task types and their handlers, and event-driven visualization tools and plug them into IRIS.

Multiple languages support

IRIS applications can be written in C, C++, Fortran, and/or Python.

C

iris_task task;
iris_task_create(&task);
iris_task_kernel(task, "foobar", 1, &size);
iris_task_submit(task, iris_gpu);

C++

iris::Task task;
task.kernel("foobar", 1, &size);
task.submit(iris::iris_gpu);

Fortran

INTEGER(8) :: TASK
CALL IRIS_TASK_CREATE(TASK, IERROR)
CALL IRIS_TASK_KERNEL(TASK, "foobar", 1, SIZE, IERROR)
CALL IRIS_TASK_SUBMIT(TASK, IRIS_GPU, IERROR)

Python

task = iris.task()
task.kernel("foobar", 1, [size])
task.submit(iris.iris_gpu)

HPC + AI + Quantum

An IRIS application can be a seamless mixture of HPC, AI (PyTorch, TensorFlow), and Quantum (Qiskit).

 

Docs

The IRIS Programming Guide
Programming Guide

 

Events

IRIS mini workshop 2022

January 2022, Oak Ridge National Laboratory, Oak Ridge, TN, USA

IRIS Internals Code Generation Scheduling Experiments Custom Policy Hunter

IRIS mini workshop 2021

January 2021, Oak Ridge National Laboratory, Oak Ridge, TN, USA

IRIS Overview

 

Publications

Tiling Framework for Heterogeneous Computing of Matrix-Based Tiled Algorithms PPoPP ExHET 2023

Narasinga Rao Miniskar, Mohammad Alaul Haque Monil, Pedro Valero-Lara, Frank Y. Liu, Jeffrey S. Vetter

pdf slide

Adrastea: An Efficient FPGA Design Environment for Heterogeneous Scientific Computing and Machine Learning SMC 2022

Aaron R. Young, Narasinga Rao Miniskar, Frank Liu, Willem Blokland, Jeffrey S. Vetter

doi pdf slide

LaRIS: Targeting Portability and Productivity for LAPACK Codes on Extreme Heterogeneous Systems by Using IRIS RSDHA 2022

Mohammad Alaul Haque Monil, Narasinga Rao Miniskar, Frank Y. Liu, Jeffrey S. Vetter, Pedro Valero-Lara

doi pdf slide

Iris-blas: Towards a performance portable and heterogeneous blas library HiPC 2022

Narasinga Rao Miniskar, Mohammad Alaul Haque Monil, Pedro Valero-Lara, Frank Liu, Jeffrey S. Vetter

doi pdf slide

A Hierarchical Task Scheduler for Heterogeneous Computing ISC High Performance 2021

Narasinga Rao Miniskar, Frank Liu, Aaron R. Young, Dwaipayan Chakraborty, Jeffrey S. Vetter

doi pdf slide

Toward Performance Portable Programming for Heterogeneous Systems on a Chip: A Case Study with Qualcomm Snapdragon SoC HPEC 2021

Anthony Cabrera, Seth Hitefield, Jungwon Kim, Seyong Lee, Narasinga Rao Miniskar, Jeffrey S. Vetter

doi pdf slide

IRIS: A Portable Runtime System Exploiting Multiple Heterogeneous Programming Systems HPEC 2021

Jungwon Kim, Seyong Lee, Beau Johnston, Jeffrey S. Vetter

doi pdf slide

 

Citation

If you use IRIS, please cite the following paper:

IRIS: A Portable Runtime System Exploiting Multiple Heterogeneous Programming Systems HPEC 2021

Jungwon Kim, Seyong Lee, Beau Johnston, Jeffrey S. Vetter

doi pdf slide
iris-programming.github.io