Skip to content
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
92 changes: 90 additions & 2 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1657,7 +1657,6 @@ Kconfig
buildroot
RMM
Bolt
Optimisation
PGO
llvmorg
latencies
Expand Down Expand Up @@ -4235,4 +4234,93 @@ libssl
misclassification
retransmission
subquery
uninstrumented
uninstrumented
ASIL
AdvSIMD
AnyCPU
BIST
BMS
Benchstat
Bleve
CMS
CPUx
CockroachDB
CycloneDDS
DCPS
DCPerf
DataReaders
DataWriters
Dn
EV
Gi
GopherLua
HARA
HHVM
HIL
HipHop
JIRA
Jayat
Julien
MISRA
MarkdownRenderXHTML
MediaWiki
NET's
NSG
OrchardCMS
OrchardCore
PATHNAME
Polarion
QoS
RSS
Req
SELinux
STS
ThreadPool
VM's
VM’s
autorun
azureuser
bb
benchstat
biogo
bitness
bleve
br
brstack
cockroachdb
cycloneDDS
differentiators
esbuild
etcd
facebookresearch
gRPC
geomean
geomeans
geospatial
hardcoding
igor
interop
ipfrag
ipv
krishna
metaprogramming
minifies
misprediction
multicast
multicore
odinlmshen
optimise
orchardcore
ov
pathname
psci
retuned
rexec
rmem
roadmap
runnable
taskset
unicast
wrk's
yy
zenoh
9 changes: 5 additions & 4 deletions content/learning-paths/automotive/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ subtitle: Build secure, connected, smart IoT devices
title: Automotive
weight: 4
subjects_filter:
- Containers and Virtualization: 2
- Containers and Virtualization: 3
- Performance and Architecture: 1
operatingsystems_filter:
- Baremetal: 1
- Linux: 2
- Linux: 3
- RTOS: 1
tools_software_languages_filter:
- Automotive: 1
- Docker: 1
- Python: 1
- Docker: 2
- Python: 2
- ROS 2: 1
- ROS2: 1
---
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ Since the planning-control and simulator containers will now run on different ma

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

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

In the next section, you’ll complete the full end-to-end demonstrationa with all of concepts.
In the next section, you’ll complete the full end-to-end demonstration with all of the concepts.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ subjects_filter:
- Containers and Virtualization: 6
- Embedded Linux: 4
- Libraries: 3
- ML: 13
- ML: 14
- Performance and Architecture: 21
- RTOS Fundamentals: 4
- Security: 2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ prerequisites:
author: Bright Edudzi Gershon Kordorwu
### Tags
skilllevels: Introductory
subjects: tinyML
subjects: ML
armips:
- Cortex-M

Expand Down
2 changes: 1 addition & 1 deletion content/learning-paths/laptops-and-desktops/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ tools_software_languages_filter:
- C/C++: 4
- CCA: 1
- Clang: 11
- cmake: 1
- CMake: 2
- cmake: 1
- Coding: 16
- CSS: 1
- Daytona: 1
Expand Down
19 changes: 11 additions & 8 deletions content/learning-paths/servers-and-cloud-computing/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ key_ip:
maintopic: true
operatingsystems_filter:
- Android: 2
- Linux: 147
- Linux: 150
- macOS: 10
- Windows: 14
pinned_modules:
Expand All @@ -19,17 +19,17 @@ pinned_modules:
- migration
subjects_filter:
- CI-CD: 5
- Containers and Virtualization: 27
- Containers and Virtualization: 28
- Databases: 15
- Libraries: 9
- ML: 27
- Performance and Architecture: 57
- Performance and Architecture: 59
- Storage: 1
- Web: 10
subtitle: Optimize cloud native apps on Arm for performance and cost
title: Servers and Cloud Computing
tools_software_languages_filter:
- .NET: 2
- .NET: 3
- .NET SDK: 1
- 5G: 1
- ACL: 1
Expand All @@ -51,12 +51,14 @@ tools_software_languages_filter:
- AWS Elastic Container Service (ECS): 1
- AWS Elastic Kubernetes Service (EKS): 3
- AWS Graviton: 1
- Bash: 1
- Azure CLI: 1
- Azure Portal: 1
- bash: 2
- Bash: 1
- Bastion: 3
- BOLT: 2
- bpftool: 1
- C: 4
- C: 5
- C#: 2
- C++: 8
- C/C++: 2
Expand Down Expand Up @@ -88,7 +90,7 @@ tools_software_languages_filter:
- GitHub: 6
- GitLab: 1
- Glibc: 1
- Go: 3
- Go: 4
- Google Axion: 3
- Google Benchmark: 1
- Google Cloud: 1
Expand Down Expand Up @@ -126,6 +128,7 @@ tools_software_languages_filter:
- Ollama: 1
- ONNX Runtime: 1
- OpenBLAS: 1
- OrchardCore: 1
- PAPI: 1
- perf: 5
- Perf: 1
Expand Down Expand Up @@ -169,7 +172,7 @@ tools_software_languages_filter:
weight: 1
cloud_service_providers_filter:
- AWS: 17
- Google Cloud: 12
- Google Cloud: 13
- Microsoft Azure: 9
- Oracle: 2
---
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Here is an outline of the steps:

With the merged profile, you apply BOLT optimizations separately to each binary and shared library. This step ensures that both your main application and its dependencies are optimized based on real-world usage patterns, resulting in a more efficient and responsive software stack.

5. Link the final optimized binary with the separately bolted libraries to deploy a fully optimized runtime stack
5. Link the final optimized binary with the separately optimized libraries to deploy a fully optimized runtime stack

After optimizing each component, you combine them to create a deployment where both the application and its libraries benefit from BOLT's enhancements.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ With .NET 5 Microsoft started the “one .NET” unification. Even though it had

.NET 6 laid the foundation for the modern performance story on Arm64:

- Tiered PGO entered preview, combining tiered compilation with profile-guided optimisation.
- Tiered PGO entered preview, combining tiered compilation with profile-guided optimization.
- Better scalability on many-core Arm servers thanks to the new ThreadPool implementation.
- First-class support for Apple M1, enabling full .NET development on Arm-based macOS, as well as for Windows Arm64.

Expand All @@ -55,7 +55,7 @@ With .NET 5 Microsoft started the “one .NET” unification. Even though it had
Key highlights were:

- General-availability of Native AOT publishing for console applications, producing self-contained, very small binaries with fast start-up on Arm64.
- Dynamic PGO (Profile-Guided Optimisation) and On-Stack Replacement became the default, letting the JIT optimise the hottest code paths based on real run-time data.
- Dynamic PGO (Profile-Guided Optimization) and On-Stack Replacement became the default, letting the JIT optimise the hottest code paths based on real run-time data.
- New Arm64 hardware intrinsics (e.g. SHA-1/SHA-256, AES, CRC-32) exposed through System.Runtime.Intrinsics, enabling high-performance crypto workloads.

## .NET 8 (current LTS – support until November 2026)
Expand All @@ -64,7 +64,7 @@ Key highlights were:

Important Arm-related improvements include:

- Native AOT support for ASP.NET Core, trimming enhancements and even smaller self-contained binaries, translating into faster cold-start for containerised Arm services.
- Native AOT support for ASP.NET Core, trimming enhancements and even smaller self-contained binaries, translating into faster cold-start for containerized Arm services.
- Further JIT tuning for Arm64 delivering single-digit to low double-digit throughput gains in real-world benchmarks.
- Smaller base container images (`mcr.microsoft.com/dotnet/aspnet:8.0` and `…/runtime:8.0`) thanks to a redesigned layering strategy, particularly beneficial on Arm where network bandwidth is often at a premium.
- Garbage-collector refinements that reduce pause times on highly-threaded, many-core servers.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Subsequent steps in the learning path assume you are running this script (instal
{{% /notice %}}


Start by copying and pasting the script below on **both** of your GCP VMs. This script checks the architecture of your running VM, installs the required Go packge on your VM. It then installs sweet, benchmarks, and the benchstat tools.
Start by copying and pasting the script below on **both** of your GCP VMs. This script checks the architecture of your running VM, installs the required Go package on your VM. It then installs sweet, benchmarks, and the benchstat tools.

**You don't need to run it after pasting**, just paste it into your home directory and press enter to install all needed dependencies:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ The file contains the results of the `markdown` benchmark run on the Arm-based c
To compare the results, you'll use `benchstat` to analyze the two result files you downloaded. Since all the prerequisites are already installed on the `c4` and `c4a` instances, benchstat will be run from one of those instances.


1. **Create working directory:** Make a temporary benchstat directory to hold the results files on either the c4a or c4 isntance, and change directory into it:
1. **Create working directory:** Make a temporary benchstat directory to hold the results files on either the c4a or c4 instance, and change directory into it:

```bash
mkdir benchstat_results
Expand Down