Welcome to COMET’s documentation!

The COMET (COMpiler for Extreme Targets) compiler consists of a Domain Specific Language (DSL) for sparse and dense tensor algebra computations and, a progressive lowering process to map high-level operations to low-level architectural resources. During the lowering process, a series of optimizations are performed, and various intermediate representation (IR) dialects are used to represent key concepts, operations, and types at each level of the multi-level IR.

COMET is built using Multi-Level IR (MLIR) Compiler Framework. Drawing motivation from MLIR, the COMET compiler performs different optimizations and code transformations at each level of the IR stack. Domain-specific, hardware-agnostic optimizations that rely on high-level semantic information are applied at high-level IRs. These include reformulation of high-level operations in a form that is amenable for execution on heterogeneous devices (e.g., rewriting Tensor contraction operations as Transpose-Transpose-GEMM-Transpose) and automatic parallelization of high-level primitives (e.g., tiling for thread- and task-level parallelism). Hardware-specific transformations are applied at low-level IRs, either within COMET/MLIR or through vendor backends. At this time, COMET supports execution on CPUs, GPUs, and FPGAs.

Check out the rest of the documentation for further information. The Overview section provides an introduction to COMET compiler and also provides an overview of supported front-ends and backend architectures. For a quick usage reference, please have a look at the Getting Started section for how to build, install and test COMET.

Get Started Now

See our project on GitHub

License

This project is licensed under the Simplified BSD License. See the LICENSE file and the DISCLAIMER file for more details.

Reporting Issues

Issues with COMET can be reported through GitHub. We will try our best to timely address issues reported by users. The community is also welcome to discuss any remedies or experience that may help to resolve issues.

Contributions

Contributions to COMET are welcome. The community can get involved by contributing some new feature, reporting bugs, and/or improving documentation. Please feel free to create a pull-request on GitHub for code contributions. We will try our best to timely incorporate user requests.

Contact Us

We encourage you to use GitHub’s tracking system to report any issues or for code contributions as mentioned above. For any other queries, please feel free to contact us via email:

Cite Our Project

If you use COMET in your research or work, please cite any of the following relevant papers:

  • Erdal Mutlu, Ruiqin Tian, Bin Ren, Sriram Krishnamoorthy, Roberto Gioiosa, Jacques Pienaar & Gokcen Kestor, COMET: A Domain-Specific Compilation of High-Performance Computational Chemistry, In: Chapman, B., Moreira, J. (eds) Languages and Compilers for Parallel Computing, LCPC 2020, Lecture Notes in Computer Science, vol 13149, Springer, Cham. DOI and BIB.

@InProceedings{COMET:LCPC-20,
   author={Mutlu, Erdal and Tian, Ruiqin and Ren, Bin and Krishnamoorthy, Sriram and Gioiosa, Roberto and Pienaar, Jacques and Kestor, Gokcen",
   editor={Chapman, Barbara and Moreira, Jos{\'e}},
   title={COMET: A Domain-Specific Compilation of High-Performance Computational Chemistry},
   booktitle={Languages and Compilers for Parallel Computing},
   year={2022},
   publisher={Springer International Publishing},
   address={Cham},
   pages={87--103}
 }
  • Ruiqin Tian, Luanzheng Guo, Jiajia Li, Bin Ren, & Gokcen Kestor, A High Performance Sparse Tensor Algebra Compiler in MLIR, In: IEEE/ACM 7th Workshop on the LLVM Compiler Infrastructure in HPC, LLVM-HPC 2021, November 14, 2021, St. Louis, MO, United States. DOI

@InProceedings{COMET:LLVM-HPC-2021,
   author={Tian, Ruiqin and Guo, Luanzheng and Li, Jiajia and Ren, Bin and Kestor, Gokcen},
   booktitle={2021 IEEE/ACM 7th Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC)},
   title={A High Performance Sparse Tensor Algebra Compiler in MLIR},
   year={2021},
   pages={27-38},
   doi={10.1109/LLVMHPC54804.2021.00009}
}

Support

The COMET compiler is supported in part by the Data-Model Convergence (DMC) initiative at the Pacific Northwest National Laboratory.

This work is also supported in part by the High Performance Data Analytics (HPDA) program at the Pacific Northwest National Laboratory.

This work is also supported in part by the U.S. Department of Energy’s (DOE) Office of Advanced Scientific Computing Research (ASCR) as part of the Center for Artificial Intelligence-focused Architectures and Algorithms (ARIAA).

_images/DMC_PNNL.jpeg

Note

This project is under active development and this documentation may be updated with future releases.

Contents