Skip to content

Commit 21b7eb7

Browse files
authored
Merge branch 'ArmDeveloperEcosystem:main' into main
2 parents d2149fc + 789fcd6 commit 21b7eb7

51 files changed

Lines changed: 482 additions & 1870 deletions

Some content is hidden

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

.wordlist.txt

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,7 +1657,6 @@ Kconfig
16571657
buildroot
16581658
RMM
16591659
Bolt
1660-
Optimisation
16611660
PGO
16621661
llvmorg
16631662
latencies
@@ -4235,4 +4234,93 @@ libssl
42354234
misclassification
42364235
retransmission
42374236
subquery
4238-
uninstrumented
4237+
uninstrumented
4238+
ASIL
4239+
AdvSIMD
4240+
AnyCPU
4241+
BIST
4242+
BMS
4243+
Benchstat
4244+
Bleve
4245+
CMS
4246+
CPUx
4247+
CockroachDB
4248+
CycloneDDS
4249+
DCPS
4250+
DCPerf
4251+
DataReaders
4252+
DataWriters
4253+
Dn
4254+
EV
4255+
Gi
4256+
GopherLua
4257+
HARA
4258+
HHVM
4259+
HIL
4260+
HipHop
4261+
JIRA
4262+
Jayat
4263+
Julien
4264+
MISRA
4265+
MarkdownRenderXHTML
4266+
MediaWiki
4267+
NET's
4268+
NSG
4269+
OrchardCMS
4270+
OrchardCore
4271+
PATHNAME
4272+
Polarion
4273+
QoS
4274+
RSS
4275+
Req
4276+
SELinux
4277+
STS
4278+
ThreadPool
4279+
VM's
4280+
VM’s
4281+
autorun
4282+
azureuser
4283+
bb
4284+
benchstat
4285+
biogo
4286+
bitness
4287+
bleve
4288+
br
4289+
brstack
4290+
cockroachdb
4291+
cycloneDDS
4292+
differentiators
4293+
esbuild
4294+
etcd
4295+
facebookresearch
4296+
gRPC
4297+
geomean
4298+
geomeans
4299+
geospatial
4300+
hardcoding
4301+
igor
4302+
interop
4303+
ipfrag
4304+
ipv
4305+
krishna
4306+
metaprogramming
4307+
minifies
4308+
misprediction
4309+
multicast
4310+
multicore
4311+
odinlmshen
4312+
optimise
4313+
orchardcore
4314+
ov
4315+
pathname
4316+
psci
4317+
retuned
4318+
rexec
4319+
rmem
4320+
roadmap
4321+
runnable
4322+
taskset
4323+
unicast
4324+
wrk's
4325+
yy
4326+
zenoh

content/install-guides/bolt.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,19 +145,19 @@ You are now ready to [verify BOLT is installed](#verify).
145145
For Arm Linux use the file with `aarch64` in the name:
146146

147147
```bash
148-
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.5/clang+llvm-17.0.5-aarch64-linux-gnu.tar.xz
148+
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/clang+llvm-19.1.7-aarch64-linux-gnu.tar.xz
149149
```
150150

151151
2. Extract the downloaded file
152152

153153
```bash
154-
tar -xvf clang+llvm-17.0.5-aarch64-linux-gnu.tar.xz
154+
tar -xvf clang+llvm-19.1.7-aarch64-linux-gnu.tar.xz
155155
```
156156

157157
3. Add the path to BOLT in your `.bashrc` file
158158

159159
```bash
160-
echo 'export PATH="$PATH:$HOME/clang+llvm-17.0.5-aarch64-linux-gnu/bin"' >> ~/.bashrc
160+
echo 'export PATH="$PATH:$HOME/clang+llvm-19.1.7-aarch64-linux-gnu/bin"' >> ~/.bashrc
161161
source ~/.bashrc
162162
```
163163

@@ -201,9 +201,8 @@ The output is similar to:
201201

202202
```output
203203
LLVM (http://llvm.org/):
204-
LLVM version 18.0.0git
204+
LLVM version 19.1.7
205205
Optimized build with assertions.
206-
BOLT revision 99c15eb49ba0b607314b3bd221f0760049130d97
207206
208207
Registered Targets:
209208
aarch64 - AArch64 (little endian)

content/install-guides/dcperf.md

Lines changed: 81 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,33 +21,55 @@ weight: 1
2121

2222
## Introduction
2323

24-
DCPerf is an open source benchmarking and microbenchmarking suite, originally developed by Meta, that faithfully replicates the characteristics of various general purpose data center workloads. One of the key differentiators to alternate benchmarking software is the fidelity of micro-architectural behaviour replicated by DCPerf, for example, cache misses, branch misprediction rate etc.
24+
DCPerf is an open-source benchmarking and microbenchmarking suite originally developed by Meta. It faithfully replicates the characteristics of general-purpose data center workloads, with particular attention to microarchitectural fidelity. DCPerf stands out for accurate simulation of behaviors such as cache misses and branch mispredictions, which are details that many other benchmarking tools overlook.
2525

26-
The use cases of running DCPerf are to generate performance data to inform procurement decision and regression testing for changes in environment, such as kernel and compiler changes. This installation guide is to install DCPerf on Arm-based servers. This example has been tested on a AWS `c7g.metal` instance running Ubuntu 22.04 LTS.
26+
You can use DCPerf to generate performance data to inform procurement decisions, and for regression testing to detect changes in the environment, such as kernel and compiler changes.
2727

28-
Please Note: When running on a server provided by a cloud service provided, you will have limit access to change parameters such as BIOS settings which can impact performance.
28+
DCPerf runs on Arm-based servers. The examples below have been tested on an AWS `c7g.metal` instance running Ubuntu 22.04 LTS.
2929

30-
## Install Prerequisites
30+
{{% notice Note %}}
31+
When running on a server provided by a cloud service, you have limited access to some parameters, such as UEFI settings, which can affect performance.
32+
{{% /notice %}}
3133

32-
Enter the default daemons to restart if asked.
34+
## Install prerequisites
35+
36+
To get started, install the required software:
3337

3438
```bash
3539
sudo apt update
36-
sudo apt install -y python3-pip git
37-
sudo pip3 install click pyyaml tabulate pandas
40+
sudo apt install -y python-is-python3 python3-pip python3-venv git
3841
```
3942

40-
Clone the repostory
43+
It is recommended that you install Python packages in a Python virtual environment.
44+
45+
Set up your virtual environment:
46+
47+
```bash
48+
python3 -m venv venv
49+
source venv/bin/activate
50+
```
51+
If requested, restart the recommended services.
52+
53+
Install the required packages:
54+
55+
```bash
56+
pip3 install click pyyaml tabulate pandas
57+
```
58+
59+
Clone the repository:
4160

4261
```bash
4362
git clone https://github.com/facebookresearch/DCPerf.git
4463
cd DCPerf
4564
```
4665

66+
## Running the MediaWiki benchmark
4767

48-
## Running a the MediaWiki Benchmark
68+
DCPerf offers many benchmarks. See the official documentation for the benchmark of your choice.
4969

50-
DCPerf offers many benchmarks, please refer the official documentation for the benchmark of your choice. In this example we will run the MediaWiki benchmark. The MediaWiki benchmark is designed to faithfully reproduce the workload of the facebook social networking site. First install the dependency.
70+
One example is the MediaWiki benchmark, designed to faithfully reproduce the workload of the Facebook social networking site.
71+
72+
Install HipHop Virtual Machine (HHVM), a virtual machine used to execute the web application code:
5173

5274
```bash
5375
wget https://github.com/facebookresearch/DCPerf/releases/download/hhvm/hhvm-3.30-multplatform-binary-ubuntu.tar.xz
@@ -57,59 +79,61 @@ sudo ./pour-hhvm.sh
5779
export LD_LIBRARY_PATH="/opt/local/hhvm-3.30/lib:$LD_LIBRARY_PATH"
5880
```
5981

60-
Confirm `hhvm` is available with no link time issues. `hhvm` will be available in the `DCPerf/hhvm/aarch64-ubuntu22.04/hhvm-3.30/bin` directory.
82+
Confirm `hhvm` is available. The `hhvm` binary is located in the `DCPerf/hhvm/aarch64-ubuntu22.04/hhvm-3.30/bin` directory:
6183

6284
```bash
6385
hhvm --version
86+
# Return to the DCPerf root directory
87+
cd ..
6488
```
6589

66-
You should see an output like the following with no errors.
90+
You should see output similar to:
6791

6892
```output
6993
HipHop VM 3.30.12 (rel)
7094
Compiler: 1704922878_080332982
7195
Repo schema: 4239d11395efb06bee3ab2923797fedfee64738e
7296
```
7397

74-
Confirm security-enhanced Linux (SELinux) is disabled with the following commands.
98+
Confirm security-enhanced Linux (SELinux) is disabled with the following commands:
7599

76100
```bash
77101
sudo apt install selinux-utils
78102
getenforce
79103
```
80104

81-
You should see the following response. If you do not see the `Disabled` output. Please refer to your distributions documentation on how to disable before proceeding.
105+
You should see the following response:
82106

83107
```output
84108
Disabled
85109
```
86110

111+
If you do not see the `Disabled` output, see your Linux distribution documentation for information about how to disable SELinux.
87112

88-
The `install` argument to the `benchpress_cli.py` command line script can be used to automatially install all dependencies for each benchmark.
113+
You can automatically install all dependencies for each benchmark using the `install` argument with the `benchpress_cli.py` command-line script:
89114

90-
```bash
115+
```console
91116
sudo ./benchpress_cli.py install oss_performance_mediawiki_mlp
92117
```
93118

94-
Please note this can take several minutes to do all the required steps.
95-
119+
This step might take several minutes to complete, depending on your system's download and setup speed.
96120

97-
## Run the MediaWiki Benchmark
121+
## Run the MediaWiki benchmark
98122

99-
For sake of brevity we will pass in duration and timeout arguments through a `JSON` dictionary with the `-i` argument.
123+
For the sake of brevity, you can provide the duration and timeout arguments using a `JSON` dictionary with the `-i` argument:
100124

101-
```bash
125+
```console
102126
sudo ./benchpress_cli.py run oss_performance_mediawiki_mlp -i '{
103127
"duration": "30s",
104128
"timeout": "1m"
105129
}'
106130
```
107131

108-
Whilst the benchmark is running you will be able to observe the various processes occupying the CPU with the `top` command.
132+
While the benchmark is running, you can monitor CPU activity and observe benchmark-related processes using the `top` command.
109133

134+
When the benchmark is complete, a `benchmark_metrics_*` directory is created within the `DCPerf` directory, containing a `JSON` file for the system specs and another for the metrics.
110135

111-
Once the benchmark is complete, within the `DCPerf` directory a `benchmark_metrics_*` directory will be created with a `JSON` file for the system specs and metrics respectively.
112-
For example, the metrics file will list the
136+
For example, the metrics file lists the following:
113137

114138
```output
115139
"metrics": {
@@ -133,3 +157,36 @@ For example, the metrics file will list the
133157
},
134158
"score": 2.4692578125
135159
```
160+
161+
## Understanding the benchmark results
162+
163+
The metrics file contains several key performance indicators from the benchmark run:
164+
165+
166+
- **Nginx 200, 404, 499**: The number of HTTP responses with status codes 200 (success), 404 (not found), and 499 (client closed request) returned by the Nginx web server during the test.
167+
- **Nginx P50/P90/P95/P99 time**: The response time percentiles (in seconds) for requests handled by Nginx. For example, P50 is the median response time, P99 is the time under which 99% of requests completed.
168+
- **Nginx avg bytes**: The average number of bytes sent per response.
169+
- **Nginx avg time**: The average response time for all requests.
170+
- **Nginx hits**: The total number of requests handled by Nginx.
171+
- **Wrk RPS**: The average number of requests per second (RPS) generated by the `wrk` load testing tool.
172+
- **Wrk failed requests**: The number of requests that failed during the test.
173+
- **Wrk requests**: The total number of requests sent by `wrk`.
174+
- **Wrk successful requests**: The number of requests that completed successfully.
175+
- **Wrk wall sec**: The total wall-clock time (in seconds) for the benchmark run.
176+
- **score**: An overall performance score calculated by DCPerf, which can be used to compare different systems or configurations.
177+
178+
{{% notice Note %}}
179+
`wrk` is a modern HTTP benchmarking tool used to generate load and measure web server performance. It is widely used for benchmarking because it can produce significant load and provides detailed statistics. For more information, see [wrk's GitHub page](https://github.com/wg/wrk).
180+
{{% /notice %}}
181+
182+
These metrics help you evaluate the performance and reliability of the system under test. Higher values for successful requests and RPS, and lower response times, generally indicate better performance. The score provides a single value for easy comparison across runs or systems.
183+
184+
## Next steps
185+
186+
These are some activites you might like to try next:
187+
188+
* Use the results to compare performance across different systems, hardware configurations, or after making system changes, such as kernel, compiler, or driver updates.
189+
190+
* Consider tuning system parameters or trying alternative DCPerf benchmarks to further evaluate your environment.
191+
192+
* Explore additional DCPerf workloads, including those that simulate key-value stores, in-memory caching, or machine learning inference.

content/learning-paths/automotive/_index.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ subtitle: Build secure, connected, smart IoT devices
1111
title: Automotive
1212
weight: 4
1313
subjects_filter:
14-
- Containers and Virtualization: 2
14+
- Containers and Virtualization: 3
1515
- Performance and Architecture: 1
1616
operatingsystems_filter:
1717
- Baremetal: 1
18-
- Linux: 2
18+
- Linux: 3
1919
- RTOS: 1
2020
tools_software_languages_filter:
2121
- Automotive: 1
22-
- Docker: 1
23-
- Python: 1
22+
- Docker: 2
23+
- Python: 2
2424
- ROS 2: 1
25+
- ROS2: 1
2526
---

content/learning-paths/automotive/openadkit2_safetyisolation/3_container_spliting.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ Since the planning-control and simulator containers will now run on different ma
161161

162162
##### Enable Host Networking
163163
All three containers (visualizer, simulator, planning-control) need access to the host’s network interfaces for DDS-based peer discovery.
164-
Replace Dockers default bridge network with host networking:
164+
Replace Docker's default bridge network with host networking:
165165

166166
```YAML
167167
visualizer:
@@ -369,4 +369,4 @@ This confirms that:
369369
- ROS 2 nodes are able to communicate across EC2 instances via /hello topic.
370370
- The network settings including host mode, security group, and CycloneDDS peer configuration are correctly applied.
371371

372-
In the next section, you’ll complete the full end-to-end demonstrationa with all of concepts.
372+
In the next section, you’ll complete the full end-to-end demonstration with all of the concepts.

content/learning-paths/embedded-and-microcontrollers/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ subjects_filter:
2020
- Containers and Virtualization: 6
2121
- Embedded Linux: 4
2222
- Libraries: 3
23-
- ML: 13
23+
- ML: 14
2424
- Performance and Architecture: 21
2525
- RTOS Fundamentals: 4
2626
- Security: 2

content/learning-paths/embedded-and-microcontrollers/edge/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ prerequisites:
2424
author: Bright Edudzi Gershon Kordorwu
2525
### Tags
2626
skilllevels: Introductory
27-
subjects: tinyML
27+
subjects: ML
2828
armips:
2929
- Cortex-M
3030

content/learning-paths/laptops-and-desktops/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ tools_software_languages_filter:
3434
- C/C++: 4
3535
- CCA: 1
3636
- Clang: 11
37-
- cmake: 1
3837
- CMake: 2
38+
- cmake: 1
3939
- Coding: 16
4040
- CSS: 1
4141
- Daytona: 1

0 commit comments

Comments
 (0)