GithubHelp home page GithubHelp logo

llnl / lime Goto Github PK

View Code? Open in Web Editor NEW
3.0 8.0 2.0 15.63 MB

LiME Infrastructure

License: BSD 3-Clause "New" or "Revised" License

Makefile 2.38% Tcl 13.29% VHDL 25.56% Verilog 0.06% Shell 0.78% C++ 13.25% C 40.97% Assembly 2.04% sed 0.02% Awk 0.24% Perl 1.41%

lime's Introduction

LiME

Logic in Memory Emulator (LiME) is a hardware/software tool specially designed for memory system evaluation and experiment. Emerging memories display a wide range of bandwidths, latencies, and capacities, making it challenging for the computer architect to navigate the design space of potential memory configurations, and for the application developer to assess performance implications of using such memories. With the LiME framework, architectural ideas can be prototyped in great detail yet with sufficient performance to support realistic evaluation on long running applications. LiME consists of two fundamental components: 1) the hardware and OS infrastructure for the emulator, and 2) a suite of benchmark applications to assist in characterizing the performance of current and future computer architectures. Some of the applications have been collected from other open source projects.

Uses

  • Logging, replay and analysis of an application's memory behavior
  • Evaluate impact of emerging memory technology on application performance
  • Emulate complex memory interactions in whole applications orders of magnitude faster than software simulation
  • Emulate acceleration hardware co-located with the memory subsystem

Features

  • Capture and log external memory accesses to a separate off-chip memory device without affecting application execution
  • Memory traces include the address, length, timestamp, and optionally the data for each transaction
  • Captured trace data can be saved to an SD card for off-line analysis
  • Configure a wide range of memory latencies in sub-nanosecond increments that encompass high-bandwidth and storage class memories
  • Specify regions of interest (ROI) in applications to reduce the amount of trace data captured for analysis
  • Currently supports execution on Xilinx Zynq SoC which integrates an ARM processor with FPGA logic on a single device
  • Applications can be run under Linux or in bare metal mode on the ARM cores

Project

The project consists of hardware and software source code contained within two repositories. One (lime) is more specific to the hardware and operating system infrastructure for the emulator, and the other (lime-apps) contains a suite of benchmark applications. The lime repository also contains a few test programs useful in validating basic features of the emulator.

Getting Started

  • Clone or copy the lime and lime-apps repositories to your system
  • Type "make help" from the top directory for available build and execution options

Compilation of applications from the lime-apps repository require access to common files from the lime repository. The directory location where lime is installed can be specified through the LIME environment variable.

References

  1. A. Jain, S. Lloyd, M. Gokhale, "Microscope on Memory: MPSoC-enabled Computer Memory System Assessments," Proceedings of FCCM, IEEE, 173-180, May 2018. doi:10.1109/FCCM.2018.00035

Dependencies

Building the emulator requires an FPGA development license from Xilinx. http://www.xilinx.com

Some of the applications are dependent on the boost library (bfs, pager). http://www.boost.org

Access to the Internet is needed to clone public repositories when building the Linux kernel and U-Boot.

Supported FPGA Boards

  • Xilinx ZCU102
  • Fidus Sidewinder
  • Xilinx ZC706 (partial)

Contributing

Bug fixes, new features, applications, or hardware modules can be submitted as pull requests. All new contributions must be open source and not contain any proprietary code.

License

LiME is distributed under the terms of the BSD 3-Clause license. See LICENSE and NOTICE for details. SPDX-License-Identifier: BSD-3-Clause

LLNL-CODE-811079

Near-Memory Data Reorganization Engine

For research purposes, LiME 2.x includes a reference implementation of LLNL's patented Near-Memory Data Reorganization Engine (United States Patent 9,965,187). Licensing information is available at http://ipo.llnl.gov/technologies/active_memory_data_reorganization.

lime's People

Contributors

gslloyd avatar

Stargazers

Amal Khailtash avatar Sergiu Mosanu avatar Zhuanhao Wu avatar

Watchers

Ian Lee avatar James Cloos avatar Dong H. Ahn avatar  avatar  avatar Kshitij Bhardwaj avatar Sergiu Mosanu avatar  avatar

lime's Issues

Linux version: device tree generator infinite loop

The standalone version of lime with Vitis 202.1 has been tested and works. However the Linux build runs into a problem due to the device tree generator going into an infinite loop on the command on hsi generate_targets. It complains about an interrupt not being connected for the MicroBlaze. The MB design or connectivity haven't changed, so this is a new condition.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.