Skip to content

Commit a62f8a0

Browse files
authored
PerfSpect 3 - new design, implementation, and features (#75)
1 parent 112554d commit a62f8a0

File tree

155 files changed

+23711
-6265
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+23711
-6265
lines changed

.github/CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @harp-intel

.github/ISSUE_TEMPLATE/1-support-bugs.yml

-30
This file was deleted.

.github/ISSUE_TEMPLATE/2-feature-request.yml

-21
This file was deleted.

.github/ISSUE_TEMPLATE/config.yml

-1
This file was deleted.

.github/dependabot.yml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "gomod" # See documentation for possible values
9+
directory: "/" # Location of package manifests
10+
schedule:
11+
interval: "daily"
12+
13+
- package-ecosystem: "gomod"
14+
directory: "/internal/common"
15+
schedule:
16+
interval: "daily"
17+
18+
- package-ecosystem: "gomod"
19+
directory: "/internal/cpudb"
20+
schedule:
21+
interval: "daily"
22+
23+
- package-ecosystem: "gomod"
24+
directory: "/internal/report"
25+
schedule:
26+
interval: "daily"
27+
28+
- package-ecosystem: "gomod"
29+
directory: "/internal/script"
30+
schedule:
31+
interval: "daily"
32+
33+
- package-ecosystem: "gomod"
34+
directory: "/internal/target"
35+
schedule:
36+
interval: "daily"
37+
38+
- package-ecosystem: "gomod"
39+
directory: "/internal/util"
40+
schedule:
41+
interval: "daily"
42+

.github/mock_mlc

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#! /bin/bash
2+
# mock_mlc
3+
# arguments:
4+
# --loaded_latency
5+
# --bandwidth_matrix
6+
7+
if [ "$1" == "--loaded_latency" ]; then
8+
cat <<EOT
9+
Intel(R) Memory Latency Checker - v3.10
10+
Command line parameters: --loaded_latency
11+
12+
Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes
13+
14+
Measuring Loaded Latencies for the system
15+
Using all the threads from each core if Hyper-threading is enabled
16+
Using Read-only traffic type
17+
Inject Latency Bandwidth
18+
Delay (ns) MB/sec
19+
==========================
20+
00000 282.55 135345.6
21+
00002 284.07 135403.7
22+
00008 278.73 135411.2
23+
00015 269.25 135532.7
24+
00050 231.67 135768.8
25+
00100 134.91 97362.0
26+
00200 114.13 43700.8
27+
00300 110.66 29798.1
28+
00400 109.30 22699.6
29+
00500 108.59 18821.4
30+
00700 107.72 13697.0
31+
01000 107.08 9975.2
32+
01300 106.73 8016.6
33+
01700 106.41 6321.5
34+
02500 106.10 4561.3
35+
03500 105.90 3481.5
36+
05000 105.77 2688.7
37+
09000 105.60 1844.7
38+
20000 105.48 1148.7
39+
40+
EOT
41+
elif [ "$1" == "--bandwidth_matrix" ]; then
42+
cat <<EOT
43+
Intel(R) Memory Latency Checker - v3.10
44+
Command line parameters: --bandwidth_matrix
45+
46+
Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes
47+
Measuring Memory Bandwidths between nodes within system
48+
Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
49+
Using all the threads from each core if Hyper-threading is enabled
50+
Using Read-only traffic type
51+
Numa node
52+
Numa node 0
53+
0 135248.8
54+
55+
EOT
56+
else
57+
echo "unknown option"
58+
fi

.github/workflows/build-test.yml

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Build & Test
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
# The branches below must be a subset of the branches above
8+
branches: [ "main" ]
9+
workflow_dispatch:
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: checkout
19+
uses: actions/checkout@v4
20+
- name: build perfspect
21+
run: |
22+
builder/build.sh
23+
- name: upload perfspect
24+
uses: actions/upload-artifact@v4
25+
with:
26+
name: perfspect
27+
path: dist/perfspect*.tgz
28+
- name: upload md5
29+
uses: actions/upload-artifact@v4
30+
with:
31+
name: md5
32+
path: dist/perfspect*.md5.txt
33+
- name: upload manifest
34+
uses: actions/upload-artifact@v4
35+
with:
36+
name: manifest
37+
path: dist/manifest.json
38+
- name: upload oss package
39+
uses: actions/upload-artifact@v4
40+
with:
41+
name: oss_source
42+
path: dist/oss_source.tgz
43+
44+
test:
45+
needs: [build]
46+
runs-on: ubuntu-latest
47+
steps:
48+
- name: checkout
49+
uses: actions/checkout@v4
50+
- name: download perspect
51+
uses: actions/download-artifact@v4
52+
with:
53+
name: perfspect
54+
- name: run test
55+
run: |
56+
tar -xf perfspect*
57+
cp .github/mock_mlc perfspect/tools/x86_64/
58+
cd perfspect
59+
mkdir output
60+
./perfspect report --format all --output output --benchmark all
61+
cp -f perfspect.log output/
62+
- name: upload report
63+
if: ${{ always() }}
64+
uses: actions/upload-artifact@v4
65+
with:
66+
name: ${{ matrix.runner }} report
67+
path: perfspect/output/

.github/workflows/build.yml

-36
This file was deleted.

.github/workflows/codeql.yml

+11-10
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,25 @@ jobs:
2121
actions: read
2222
contents: read
2323
security-events: write
24-
2524
strategy:
2625
fail-fast: false
2726
matrix:
28-
language: [ 'cpp', 'python', 'javascript' ]
29-
27+
language: [ 'go' ]
3028
steps:
3129
- name: Checkout repository
32-
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
30+
uses: actions/checkout@v4
3331
- name: Initialize CodeQL
34-
uses: github/codeql-action/init@4759df8df70c5ebe7042c3029bbace20eee13edd # v2.23.1
32+
uses: github/codeql-action/init@v3
3533
with:
3634
languages: ${{ matrix.language }}
37-
- run: |
38-
pip3 install -r requirements.txt
35+
- name: Build
36+
run: |
37+
mkdir -p internal/script/resources
38+
touch internal/script/resources/dummy
39+
mkdir -p internal/common/resources
40+
touch internal/common/resources/dummy
3941
make
40-
4142
- name: Perform CodeQL Analysis
42-
uses: github/codeql-action/analyze@4759df8df70c5ebe7042c3029bbace20eee13edd # v2.23.1
43+
uses: github/codeql-action/analyze@v3
4344
with:
44-
category: "/language:${{matrix.language}}"
45+
category: "/language:${{matrix.language}}"

.gitignore

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
build/*
2-
dist/*
3-
src/libtsc.so
4-
__pycache__
5-
*.log
1+
/perfspect
2+
/perfspect.log
3+
/perfspect_202*
4+
/debug_out
5+
/tools/bin
6+
/dist
7+
/internal/script/resources/x86_64

0 commit comments

Comments
 (0)