Skip to content

LLNL/HPAC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HPAC-ML

HPAC-ML is a directive-based programming model that enables easy use of ML surrogate models in scientific applications. The programming model can invoke a model, replacing parts of an application with NN inference, or collect data during application execution to be used during offline training of ML models.

Installation

We recommend using or building the provided HPAC-ML container.

Otherwise, you can install the spack environment from spack.yaml.

Build HPAC Compiler Extensions

To build the HPAC-ML compiler and runtime system execute the following commands:

git clone [email protected]:LLNL/HPAC.git
cd HPAC
./setup.sh 'PREFIX' 'NUM THREADS' 

The 'PREFIX' argument defines where to install all the HPAC related binaries and executables. The 'NUM THREADS' parameter define how many threads should the installation use. The installation script performs the following actions:

  1. Configures, builds and installs Clang/LLVM including the approximation extensions.
  2. Configures, builds and installs the approximation library.
  3. Creates a file, called 'hpac_env.sh', at the root of the project which should always be sourced before using HPAC.

The installation process can take a considerable amount of time. For quick exploration, we recommend

Contributing

To contribute to this repo please open a pull request.

Authors

This code was created by Zane Fink ([email protected]), Konstantinos Parasyris ([email protected]), Praneet Rathi ([email protected]), and Giorgis Georgakoudis ([email protected]), assisted with design input from Harshitha Menon ([email protected]).

License

This repo is distributed under the terms of the Apache License (Version 2.0) with LLVM exceptions. Other software that is part of this repository may be under a different license, documented by the file LICENSE in its sub-directory.

All new contributions to this repo must be under the Apache License (Version 2.0) with LLVM exceptions.

See files LICENSE and NOTICE for more information.

SPDX License Identifier: "Apache-2.0 WITH LLVM-exception"

LLNL-CODE- 825539