Skip to content

CHAI and RAJA provide an excellent base on which to build portable codes. CARE expands that functionality, adding new features such as loop fusion capability and a portable interface for many numerical algorithms. It provides all the basics for anyone wanting to write portable code.

License

LLNL/CARE

develop
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src
 
 
 
 
tpl
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CARE: CHAI and RAJA Extensions

CHAI and RAJA provide an excellent base on which to build portable code. CARE expands that functionality, adding new features such as loop fusion capability, a portable interface for many numerical algorithms, and additional data structures. It provides all the basics for anyone wanting to write portable code.

Getting Started

git submodule update --init   # Note that --recursive is not used since all the dependencies are at the top level
mkdir build
cd build
cmake ../   # May need to pass -DCMAKE_INSTALL_PREFIX=/path/to/install/in if the next instruction fails
make -j install

External libraries can be used instead of the submodules if desired. For example, an external CHAI can be specified with -Dchai_DIR=/directory/containing/chai-config.cmake or -DCHAI_DIR=/path/to/chai/install/prefix. Note that if using an external CHAI, it must be configured with -DENABLE_PICK=ON -DENABLE_PINNED=ON.

To build with CUDA support, use -DENABLE_CUDA=ON -DCUDA_TOOLKIT_ROOT_DIR=/path/to/cuda/toolkit. If using external libraries, note that CAMP, Umpire, RAJA, and CHAI must also be configured with those options.

To build with HIP support, set -DENABLE_HIP=ON -DHIP_ROOT_DIR=/path/to/rocm/hip/ -DHIP_CLANG_PATH=/path/to/rocm/clang. If using external libraries, note that CAMP, Umpire, RAJA, and CHAI must also be configured with those options. If using an external BLT, note that version 0.3.6 or later is required. Other compilers besides the hip vendor-supplied clang compiler have not yet been tried for HIP builds.

To build with OpenMP support, use -DENABLE_OPENMP=ON. If using an external RAJA, it must also be configured with that option.

By default, the tests, documentation, benchmarks, and examples are built but can be turned off with -DENABLE_TESTS=OFF, -DENABLE_DOCS=OFF, -DENABLE_BENCHMARKS=OFF, and -DENABLE_EXAMPLES=OFF.

License

CARE is release under the BSD-3-Clause License. See the LICENSE and NOTICE files for more details.

SPDX-License-Identifier: BSD-3-Clause

LLNL-CODE-809741

About

CHAI and RAJA provide an excellent base on which to build portable codes. CARE expands that functionality, adding new features such as loop fusion capability and a portable interface for many numerical algorithms. It provides all the basics for anyone wanting to write portable code.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published