Inference-Engine v0.1.0
- Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
Given a pre-trained neural network, Inference-Engine performs maps network inputs to outputs by executing the forward pass through the provided network. Although the predominant programming language for machine-learning is Python, most high-performance computing (HPC) applications are written in Fortran, C, or C++. Inference-Engine aims to support HPC programs and is written in Fortran, a language with a large feature set supporting interoperability with C. This software exposes concurrency in a portable way by using standard language features that some modern Fortran compilers can exploit with various optimizations, including offloading computation to a Graphics Processing Unit (GPU). In particular, this software makes extensive use of Fortran's "do concurrent" parallel loop construct, implicitly parallel array statements, and pure procedures that can be invoked inside "do concurrent" blocks. Inference-Engine also supports dynamic choice of inference methods at runtime. Two current options include one method that uses Fortran's "dot_product" intrinsic function inside "do concurrent" blocks and another method that instead uses Fortran' "matmul" array intrinsic function. We plan to investigate automatic compiler offloading of "do concurrent" calculations to GPUs and compile-time substitution of optimized libraries such as the Basic Linear Algebra Library (BLAS) for "matmul" invocations. We also envision the potential for the choice of which method to use could happen at program launch based on in situ performance measurements on any given platform.
- Project Type:
- Open Source, Publicly Available Repository
- Site Accession Number:
- 2023-007
- Software Type:
- Scientific
- License(s):
- BSD 3-clause "New" or "Revised" License
- Research Organization:
- Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
- Sponsoring Organization:
- USDOEPrimary Award/Contract Number:AC02-05CH11231
- DOE Contract Number:
- AC02-05CH11231
- Code ID:
- 109794
- OSTI ID:
- 1989444
- Country of Origin:
- United States
Similar Records
Software-Driven Network Architecture for Synchronous Data Acquisition
Bringing heterogeneity to the CMS software framework