Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PerfSpect 3 - new design, implementation, and features #75

Merged
merged 12 commits into from
Oct 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @harp-intel
30 changes: 0 additions & 30 deletions .github/ISSUE_TEMPLATE/1-support-bugs.yml

This file was deleted.

21 changes: 0 additions & 21 deletions .github/ISSUE_TEMPLATE/2-feature-request.yml

This file was deleted.

1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/config.yml

This file was deleted.

42 changes: 42 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "gomod" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"

- package-ecosystem: "gomod"
directory: "/internal/common"
schedule:
interval: "daily"

- package-ecosystem: "gomod"
directory: "/internal/cpudb"
schedule:
interval: "daily"

- package-ecosystem: "gomod"
directory: "/internal/report"
schedule:
interval: "daily"

- package-ecosystem: "gomod"
directory: "/internal/script"
schedule:
interval: "daily"

- package-ecosystem: "gomod"
directory: "/internal/target"
schedule:
interval: "daily"

- package-ecosystem: "gomod"
directory: "/internal/util"
schedule:
interval: "daily"

58 changes: 58 additions & 0 deletions .github/mock_mlc
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#! /bin/bash
# mock_mlc
# arguments:
# --loaded_latency
# --bandwidth_matrix

if [ "$1" == "--loaded_latency" ]; then
cat <<EOT
Intel(R) Memory Latency Checker - v3.10
Command line parameters: --loaded_latency

Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes

Measuring Loaded Latencies for the system
Using all the threads from each core if Hyper-threading is enabled
Using Read-only traffic type
Inject Latency Bandwidth
Delay (ns) MB/sec
==========================
00000 282.55 135345.6
00002 284.07 135403.7
00008 278.73 135411.2
00015 269.25 135532.7
00050 231.67 135768.8
00100 134.91 97362.0
00200 114.13 43700.8
00300 110.66 29798.1
00400 109.30 22699.6
00500 108.59 18821.4
00700 107.72 13697.0
01000 107.08 9975.2
01300 106.73 8016.6
01700 106.41 6321.5
02500 106.10 4561.3
03500 105.90 3481.5
05000 105.77 2688.7
09000 105.60 1844.7
20000 105.48 1148.7

EOT
elif [ "$1" == "--bandwidth_matrix" ]; then
cat <<EOT
Intel(R) Memory Latency Checker - v3.10
Command line parameters: --bandwidth_matrix

Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes
Measuring Memory Bandwidths between nodes within system
Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
Using all the threads from each core if Hyper-threading is enabled
Using Read-only traffic type
Numa node
Numa node 0
0 135248.8

EOT
else
echo "unknown option"
fi
67 changes: 67 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Build & Test

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
workflow_dispatch:

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: build perfspect
run: |
builder/build.sh
- name: upload perfspect
uses: actions/upload-artifact@v4
with:
name: perfspect
path: dist/perfspect*.tgz
- name: upload md5
uses: actions/upload-artifact@v4
with:
name: md5
path: dist/perfspect*.md5.txt
- name: upload manifest
uses: actions/upload-artifact@v4
with:
name: manifest
path: dist/manifest.json
- name: upload oss package
uses: actions/upload-artifact@v4
with:
name: oss_source
path: dist/oss_source.tgz

test:
needs: [build]
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: download perspect
uses: actions/download-artifact@v4
with:
name: perfspect
- name: run test
run: |
tar -xf perfspect*
cp .github/mock_mlc perfspect/tools/x86_64/
cd perfspect
mkdir output
./perfspect report --format all --output output --benchmark all
cp -f perfspect.log output/
- name: upload report
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.runner }} report
path: perfspect/output/
36 changes: 0 additions & 36 deletions .github/workflows/build.yml

This file was deleted.

21 changes: 11 additions & 10 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,25 @@ jobs:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'cpp', 'python', 'javascript' ]

language: [ 'go' ]
steps:
- name: Checkout repository
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@4759df8df70c5ebe7042c3029bbace20eee13edd # v2.23.1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- run: |
pip3 install -r requirements.txt
- name: Build
run: |
mkdir -p internal/script/resources
touch internal/script/resources/dummy
mkdir -p internal/common/resources
touch internal/common/resources/dummy
make

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@4759df8df70c5ebe7042c3029bbace20eee13edd # v2.23.1
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
category: "/language:${{matrix.language}}"
12 changes: 7 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
build/*
dist/*
src/libtsc.so
__pycache__
*.log
/perfspect
/perfspect.log
/perfspect_202*
/debug_out
/tools/bin
/dist
/internal/script/resources/x86_64
Loading