项目作者: LLNL

项目描述 :
Memory Trace and Analysis Tool
高级语言: C++
项目地址: git://github.com/LLNL/MAT.git
创建时间: 2020-02-27T16:03:40Z
项目社区:https://github.com/LLNL/MAT

开源协议:Apache License 2.0

下载


MAT: Memory Analysis Tool (Alpha version)

  1. Note: This tool is still alpha version.

This tool traces all memory accesses to stack(Static allocation)/heap(Dynamic allocation) on a trace run in a particular hardware and then estimates execution time on given arbitrary hardware configurations for hardware design space exploration.

Dependencies

Quick Start

1. Building MAT

  1. $ MAT_DIR=<path to installation directory>
  2. $ ./autogen.sh
  3. $ ./configure --with-gotcha=<path to GOTCHA directory> --prefix=$MAT_DIR
  4. $ make
  5. $ make install

2. Tracing and analysing memory access under MAT

  1. $ cd test
  2. $ mkdir mat_llvm_trace
  3. $ ./run.sh #for quick help
  4. $ ./run.sh 1 #for tracing simple test code
  5. $ ./run.sh 5 ./mat_llvm_trace/*/trace-0.mat #for computing reuse distance
  6. $ ./run.sh 6 ./mat_llvm_trace/*/trace-0.mat 0 > trace-0.txt #for printing out memory access in text
  7. $ less ./trace-0.txt #for checking memory access in text

Trace Format

in binary format (trace-0.mat)

  1. |trace type(int)|id(size_t)|thread id(int)|memory access type(int)|head address of the buffer(void*)|allocated size for the buffer(size_t)|accessed address(void*)|accessed size in bytes(size_t)|# of instructions executed from the last memory access(int)|

in text format (trace-0.txt)

  1. <id> <accessed address> <offset> <head address> <is_read> <accessed size in bytes> <allocated size for the buffer> <thread id>

Contact

License

MAT is distributed under the terms of the Apache-2.0 license. See LICENSE and NOTICE for details.

SPDX-License-Identifier: Apache-2.0

LLNL-CODE-805662