Skip to content

Commit 5ffd750

Browse files
second pass
1 parent 32afbc7 commit 5ffd750

17 files changed

Lines changed: 36 additions & 38 deletions

File tree

content/learning-paths/servers-and-cloud-computing/benchmark-nlp/_index.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ generated_summary_faq:
3333
with PyTorch on Arm servers and measure how they perform. Starting from a working Ubuntu
3434
22.04 Arm environment, you'll run three NLP models with the Sentiment Analysis
3535
pipeline, record baseline results, and then enable BFloat16 fast math kernels to assess the
36-
impact on inference performance. The workflow is validated on Arm Neoverse-based AWS Graviton3
37-
(c7g) instances and remains applicable to Arm servers meeting the stated requirements. By
36+
impact on inference performance. By
3837
the end, you'll compare before-and-after measurements to confirm the effect of BFloat16
3938
on this workload.
4039
faqs:

content/learning-paths/servers-and-cloud-computing/bolt-demo/_index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ generated_summary_faq:
4141
release, set up a working directory, and gather profiles with BRBE, SPE, instrumentation,
4242
or PMU sampling. Using a small set of Arm TopDown indicators, you'll judge
4343
whether a program is front-end bound and a good candidate for BOLT. You'll then run BOLT with
44-
collected profiles to reorganize code layout and then evaluate the impact using performance
44+
collected profiles to reorganize code layout and evaluate the impact using performance
4545
metrics and profiling data to confirm improvements in instruction delivery and locality.
4646
faqs:
4747
- question: Which BOLT version should I use if my package manager installs an older release?
@@ -50,7 +50,7 @@ generated_summary_faq:
5050
prebuilt LLVM release instead (for example, LLVM 22.1.5) to match the required features.
5151
- question: Where do the example’s build and profiling outputs go?
5252
answer: >-
53-
The path organizes outputs into three directories: out for binaries, prof for profile data,
53+
You'll find outputs into three directories: out for binaries, prof for profile data,
5454
and heatmap for visualization artifacts. Keeping these separate makes it easier to rerun
5555
steps and compare results.
5656
- question: How do I know if my program is a good candidate for BOLT?
@@ -61,7 +61,7 @@ generated_summary_faq:
6161
- question: What should I use if my kernel does not meet the BRBE or SPE requirements?
6262
answer: >-
6363
If your kernel is older than the BRBE requirement, use SPE if the kernel meets the SPE version
64-
requirement. If neither is available, the path also covers using instrumentation or PMU
64+
requirement. If neither is available, you can use instrumentation or PMU
6565
event sampling to collect profiles.
6666
- question: What result should I expect after running BOLT with profiles?
6767
answer: >-

content/learning-paths/servers-and-cloud-computing/bolt-merge/_index.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,26 @@ generated_summary_faq:
3333
summary: >-
3434
You'll use BOLT with Linux Perf profiles to optimize an Arm application
3535
and its shared libraries. First, you'll instrument a MySQL server build to generate workload-specific
36-
profiles, create separate traces for read- and write-heavy runs, and merge them to broaden
37-
code layout guidance. Then, you'll rebuild OpenSSL to make libssl.so and
38-
libcrypto.so suitable for BOLT, collect profiles, and apply optimizations independently
36+
profiles, create separate traces for read-heavy and write-heavy runs, and merge them to broaden
37+
code layout guidance. Then, you'll rebuild OpenSSL to make `libssl.so` and
38+
`libcrypto.so` suitable for BOLT, collect profiles, and apply optimizations independently
3939
from the main binary. Finally, you'll compare results across baseline, isolated, and merged
4040
scenarios using a consistent Sysbench configuration to assess the
4141
impact of application and library-level optimizations on throughput and latency.
4242
faqs:
4343
- question: What output should I expect after running an instrumented workload with BOLT?
4444
answer: >-
45-
BOLT produces a profile file in .fdata format, such as profile-writeonly.fdata. These files
45+
BOLT produces a profile file in `.fdata` format, such as `profile-writeonly.fdata`. These files
4646
are later used to optimize the binary and can be merged to improve coverage.
4747
- question: Should I reuse the BOLT-instrumented mysqld binary for additional workloads or create
4848
a new one?
4949
answer: >-
5050
Either approach works. The steps allow reusing the previously instrumented binary or generating
51-
a new instrumented variant as long as you produce a new .fdata profile for each workload.
51+
a new instrumented variant as long as you produce a new `.fdata` profile for each workload.
5252
- question: Which shared libraries are targeted for optimization, and what if the system copies
5353
are stripped?
5454
answer: >-
55-
The path optimizes libssl.so and libcrypto.so. If system libraries are stripped, rebuild
55+
The path optimizes `libssl.so` and `libcrypto.so`. If system libraries are stripped, rebuild
5656
OpenSSL from source with relocations enabled so BOLT can instrument and optimize them.
5757
- question: Do I need to rebuild the application to benefit from optimized shared libraries?
5858
answer: >-
@@ -61,7 +61,7 @@ generated_summary_faq:
6161
with the application.
6262
- question: What test configuration is used to compare baseline and BOLT-optimized results?
6363
answer: >-
64-
Sysbench is run with --time=0 --events=10000 to complete exactly 10,000 requests per thread.
64+
Sysbench is run with `--time=0 --events=10000` to complete exactly 10,000 requests per thread.
6565
Use this consistent configuration to compare baseline, application-only, and merged-with-library
6666
optimization scenarios.
6767
# END generated_summary_faq

content/learning-paths/servers-and-cloud-computing/bolt/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ generated_summary_faq:
3232
summary: >-
3333
You'll use BOLT to post-link optimize an Arm Linux executable
3434
based on real execution profiles. First, you'll prepare a target system for profiling and optionally
35-
a separate build/BOLT system, then choose a profiling methodPerf samples, ETM, or SPEto
35+
a separate build/BOLT system, then choose a profiling methodPerf samples, ETM, or SPEto
3636
collect runtime behavior into a perf.data file. You'll convert the profile for BOLT, and run BOLT to reorder code layout and emit a new optimized executable. By the end, you'll make an informed choice about how to collect profiles, produce the expected artifacts,
3737
and run the optimization steps in sequence so the resulting binary can be compared against
3838
the original to observe improvements.

content/learning-paths/servers-and-cloud-computing/buildkite-gcp/_index.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,14 @@ generated_summary_faq:
3838
Axion, install Docker, Docker Buildx, and the Buildkite agent, and connect the agent to a
3939
Buildkite queue. First, you'll create a small Flask application and Dockerfile in a GitHub repository,
4040
then configure a Buildkite pipeline that uses Buildx to build a multi-architecture container
41-
image for Arm and x86 and push it to Docker Hub. You'll use Ubuntu or SUSE on the VM
41+
image,and push it to Docker Hub. You'll use Ubuntu or SUSE on the VM
4242
and validate that the agent is online. By the end, you'll have a published
4343
image and a running Flask service to confirm the build.
4444
faqs:
4545
- question: Which Google Cloud instance type and OS should I use for the VM?
4646
answer: >-
47-
The steps use a Google Axion C4A Arm VM, specifically `c4a-standard-4` with 4 vCPUs and 16
48-
GB memory. You can select either Ubuntu or SUSE Linux Enterprise Server as shown in the
49-
installation instructions.
47+
Use a Google Axion C4A Arm VM, specifically `c4a-standard-4` with 4 vCPUs and 16
48+
GB memory. You can select either Ubuntu or SUSE Linux Enterprise Server as the OS.
5049
- question: Where do I create the Buildkite agent token, and when do I use it?
5150
answer: >-
5251
Create an agent token in your Buildkite organization after signing in (GitHub sign-in is
@@ -55,11 +54,11 @@ generated_summary_faq:
5554
- question: How do I confirm the Buildkite agent is connected and assigned to the right queue?
5655
answer: >-
5756
After configuring the agent and queue, check the Agents page in Buildkite; the agent should
58-
appear online with the expected queue. If it does not, check the agent configuration and
57+
appear online with the expected queue. If it doesn't, check the agent configuration and
5958
queue name, then repeat the verification step.
6059
- question: What files should my GitHub repository contain for the example application?
6160
answer: >-
62-
Add a Dockerfile and a Python file named app.py. The provided Dockerfile uses `python:3.12-slim`,
61+
Add a Dockerfile and a Python file named `app.py`. The provided Dockerfile uses `python:3.12-slim`,
6362
installs Flask, exposes port 5000, and runs the app.
6463
- question: What result should I expect after the pipeline runs successfully?
6564
answer: >-

content/learning-paths/servers-and-cloud-computing/cassandra-on-gcp/_index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ generated_summary_faq:
3232
faq_source_hash: b8268d4df3b62aeb9943b750b436a936134d47745fa71db6cc08db8c84eb37be
3333
summary: >-
3434
You'll deploy Apache Cassandra on Arm-based Google
35-
Cloud Axion C4A virtual machines and validating a working baseline before running simple workload
36-
tests. First, you'll create a `c4a-standard-4` instance in the Google Cloud console, install Cassandra
37-
on Ubuntu or SUSE, and satisfy the Java requirement. Then, you'll start Cassandra as a background
35+
Cloud Axion C4A virtual machines and validate a working baseline before running simple workload
36+
tests. First, you'll create a `c4a-standard-4` instance in the Google Cloud console and install Cassandra
37+
on Ubuntu or SUSE. Then, you'll start Cassandra as a background
3838
service, with logs tailed to confirm “Startup complete,” followed by nodetool status to verify
3939
the node state. By the end, you'll benchmark using the built-in `cassandra-stress` utility
4040
to exercise write, read, and mixed operations on Arm64 to
41-
confirm Cassandra is operating correctly on Axion-based instances.
41+
confirm Cassandra is operating correctly.
4242
faqs:
4343
- question: Which Google Cloud machine type should I choose for this setup?
4444
answer: >-

content/learning-paths/servers-and-cloud-computing/cca-container/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ generated_summary_faq:
4343
answer: >-
4444
Pull `armswdev/cca-learning-path:cca-simulation-v3`. Run `docker image list` and check that
4545
this repository and tag appear in the output.
46-
- question: What result should I expect when the Realm guest VM starts?
46+
- question: What result should I expect when the Realm guest virtual machine starts?
4747
answer: >-
4848
The guest virtual machine (VM) should boot as a Realm and run guest Linux. Continue when the
4949
VM is up and ready for the application injection step.

content/learning-paths/servers-and-cloud-computing/cca-device-attach/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ generated_summary_faq:
4040
when devices can't DMA directly to Realm memory. You'll also explore how PCIe‑TDISP and PCIe‑IDE
4141
provide secure device attach with attestation. Then, you'll run a pre-built Key Broker
4242
demo inside a Realm and use kernel tracing to observe SWIOTLB activity during VirtIO network
43-
I/O. By the end, you can recognize when data paths rely on bounce buffers and how this relates
43+
I/O. By the end, you'll recognize when data paths rely on bounce buffers and how this relates
4444
to the chosen device attach method.
4545
faqs:
4646
- question: How do I know that bounce buffers are being used in the Realm?

content/learning-paths/servers-and-cloud-computing/cca-essentials/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ generated_summary_faq:
3131
faq_generated_at: '2026-06-30T21:42:00Z'
3232
faq_source_hash: ba896cb418c6ae4f96029081ac9ef1f9193e8983425ad7a316c184b5b6017fbf
3333
summary: >-
34-
You'll deploy a simple workload in a Linux realm on
34+
You'll deploy a sample workload in a Linux realm on
3535
an Armv9-A AEM Base Fixed Virtual Platform (FVP) with Realm Management Extension (RME) support
3636
and connect it to attestation services to control access to secrets. First, you'll start a minimal
3737
Key Broker Server (KBS) from the Veraison project in a container, then integrate it with the

content/learning-paths/servers-and-cloud-computing/cca-kata/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ generated_summary_faq:
3535
First, you'll learn about the Confidential Containers design, understand which components run inside the
3636
Trusted Execution Environment, and see how Trustee services (AS, KBS, RVPS) use Arm CCA
3737
attestation to authorize decryption. Then, you'll start the Trustee services and a local Docker
38-
registry, publish an encrypted image, and launch the container on the FVP. By the end, you'll confirm attestation, key release, and that the workload runs in a Realm only
39-
after authorization, completing an end-to-end confidential execution workflow.
38+
registry, publish an encrypted image, and launch the container on the FVP. By the end, you'll complete an end-to-end confidential execution workflow and confirm attestation, key release, and that the workload runs in a Realm only
39+
after authorization.
4040
faqs:
4141
- question: How do I know the Trustee services are ready before pushing the image?
4242
answer: >-

0 commit comments

Comments
 (0)