Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3cb69db
fix(cca-veraison): use HTTPS URLs for the Linaro instance
thomas-fossati Jan 13, 2025
f0be9e2
Update production.yml
pareenaverma Jan 21, 2025
405f857
changed one character to a '
Jan 21, 2025
04ffb4c
Merge branch 'main' of https://github.com/zachlasiuk/arm-learning-paths
Jan 21, 2025
652fc80
Fix broken external link
jasonrandrews Jan 21, 2025
e0b3d30
Merge pull request #1542 from zachlasiuk/main
pareenaverma Jan 21, 2025
9763f93
Merge pull request #1543 from jasonrandrews/spelling
pareenaverma Jan 21, 2025
231c552
Merge pull request #1544 from thomas-fossati/patch-1
pareenaverma Jan 21, 2025
e46c309
updated sharing links
Jan 21, 2025
4a3f4d4
removed old _review.md
Jan 21, 2025
f9f049d
Merge pull request #1545 from zachlasiuk/main
pareenaverma Jan 21, 2025
f3e281b
Update backend.md
pareenaverma Jan 21, 2025
d33fefc
Update GitHub Arm-hosted runner Learning Path for public repositories.
jasonrandrews Jan 21, 2025
1849796
Merge pull request #1546 from jasonrandrews/review
jasonrandrews Jan 21, 2025
530f6ec
Update frontend.md
pareenaverma Jan 22, 2025
0bb7509
Update RAG LP
annietllnd Jan 22, 2025
82e4ee2
Fix images not rendering in GitHub Actions Learning Path
jasonrandrews Jan 22, 2025
6a11351
Merge pull request #1548 from jasonrandrews/review
jasonrandrews Jan 22, 2025
dc90d90
Fix images not rendering in GitHub Actions Learning Path
jasonrandrews Jan 22, 2025
5a8c36d
Merge pull request #1549 from jasonrandrews/review
jasonrandrews Jan 22, 2025
cb3f909
updated demo text
Jan 22, 2025
5016342
fixed next steps share links
Jan 22, 2025
dac8176
Merge branch 'ArmDeveloperEcosystem:main' into main
zachlasiuk Jan 22, 2025
b123504
Merge pull request #1550 from zachlasiuk/main
pareenaverma Jan 22, 2025
56cead0
Merge pull request #1547 from annietllnd/rag
pareenaverma Jan 22, 2025
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/workflows/production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ jobs:
secrets:
AWS_OIDC_ROLE: ${{ secrets.AWS_OIDC_ROLE_PRODUCTION }}
HUGO_LLM_API: ${{ secrets.HUGO_LLM_API }}
HUGO_RAG_API: ${{ secrets.HUGO_RAG_API }}
2 changes: 1 addition & 1 deletion assets/events.csv
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ SUSECon,2,2025-03-10,2025-03-14,Orlando,United States,FALSE,Example description.
Embedded World,1,2025-03-11,2025-03-13,Nuremburg,Germany,FALSE,"Embedded World offers insight into the world of embedded systems, from components and modules to operating systems, hardware and software design, M2M communication, and more.",https://www.embedded-world.de/en,Embedded and Microcontrollers; Automotive
FOSSAsia,2,2025-03-13,2025-03-15,Bangkok,Thailand,TRUE,Example description. Example description. Example description. Example description. Example description.,https://events.fossasia.org/,Servers and Cloud Computing; AI; IoT
NVIDIA GTC,1,2025-03-17,2025-03-21,San Jose,United States,TRUE,"Nvidia GTC is a global artificial intelligence conference for developers that brings together developers, engineers, researchers, inventors, and IT professionals. ",https://www.nvidia.com/gtc/,ML
GDC,1,2025-03-17,2025-03-21,San Fransisco,United States,FALSE,"The Game Developers Conference (GDC) is the worldÕs premier event for developers who make the games we love. GDC is the destination for creativity, innovation, and excellence.",https://gdconf.com/,"Mobile, Graphics, and Gaming"
GDC,1,2025-03-17,2025-03-21,San Fransisco,United States,FALSE,"The Game Developers Conference (GDC) is the world's premier event for developers who make the games we love. GDC is the destination for creativity, innovation, and excellence.",https://gdconf.com/,"Mobile, Graphics, and Gaming"
ATO AI,2,2025-03-17,2025-03-18,Durham,United States,,Example description. Example description. Example description. Example description. Example description.,https://allthingsopen.ai/,AI
KubeCon EU,2,2025-04-01,2025-04-04,London ,United Kingdom,TRUE,Example description. Example description. Example description. Example description. Example description.,https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/,Servers and Cloud Computing
52 changes: 0 additions & 52 deletions content/learning-paths/cross-platform/daytona/_review.md

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ learning_objectives:
- Use GitHub Actions to automate image builds.

prerequisites:
- A GitHub account with a Team or Enterprise Cloud plan.
- A GitHub account (a Team or Enterprise Cloud plan is required for private repositories).
- A Docker Hub account.

author_primary: Jason Andrews

### Tags
skilllevels: Introductory
subjects: Containers and Virtualization
subjects: CI-CD
armips:
- Neoverse
operatingsystems:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ recommended_path: "/learning-paths/cross-platform/docker-build-cloud/"
# General online references (type: website)

further_reading:
- resource:
title: Linux arm64 hosted runners now available for free in public repositories
link: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
type: documentation
- resource:
title: Using GitHub-hosted runners
link: https://docs.github.com/en/actions/using-github-hosted-runners
type: documentation
- resource:
title: Supercharge your CI/CD with Arm Runners in GitHub Actions
link: https://www.youtube.com/watch?v=vrr_OgMk458
type: video
- resource:
title: Arm64 on GitHub Actions Powering faster, more efficient build systems
link: https://github.blog/2024-06-03-arm64-on-github-actions-powering-faster-more-efficient-build-systems/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: "Run GitHub Actions jobs on the Arm-hosted runner"

weight: 3
weight: 5

layout: "learningpathall"
---

## Use GitHub Actions

You can use GitHub Actions to build multi-architecture images by using your new Arm-hosted runner alongside a standard runner by creating a workflow file.
You can use GitHub Actions to build multi-architecture images by creating a workflow file and using Arm-hosted runners.

## Create a new GitHub repository

Expand Down
27 changes: 27 additions & 0 deletions content/learning-paths/cross-platform/github-arm-runners/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: "Build options for multi-architecture container images"

weight: 2

layout: "learningpathall"
---

## How can I build multi-architecture container images?

Building multi-architecture container images for complex projects is challenging.

There are two common ways to build multi-architecture images, and both are explained in [Learn how to use Docker](/learning-paths/cross-platform/docker/).

### Use instruction emulation

The first method uses instruction emulation. You can learn about this method in [Build multi-architecture images with Docker buildx](/learning-paths/cross-platform/docker/buildx/). The drawback of emulation is slow performance, especially for complex builds which involve tasks such as compiling large C++ applications.

### Use a manifest and multiple computers

The second method uses multiple computers, one for each architecture, and joins the images to create a multi-architecture image using Docker manifest. You can learn about this method in [Use Docker manifest to create multi-architecture images](/learning-paths/cross-platform/docker/manifest/). The drawback of the manifest method is its complexity as it requires multiple systems.

### Arm-hosted runners

Arm-hosted runners from GitHub provide a way to create multi-architecture images with higher performance and lower complexity compared to the two methods described above.

When you use Arm-hosted runners, you don't need to worry about self-hosting (managing servers) or instruction emulation (slow performance).
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: "Arm-hosted runners for public repositories"

weight: 3

layout: "learningpathall"
---

## What are Arm-hosted runners?

Runners are the machines that execute jobs in a GitHub Actions workflow. An Arm-hosted runner is a runner that is managed by GitHub and uses the Arm architecture. This means that you don't need to provide a server to run Actions workflows. GitHub provides the system and runs the Action workflows for you.

Arm-hosted runners are available for public and private repositories.

If you have a free plan, Arm-hosted runners are available in public repositories at no cost, subject to standard usage limits.

You can use Arm-hosted runners in private repositories with a Teams or Enterprise Cloud account (covered on the next page).

## What kind of server hardware is used by Arm-hosted runners?

You may have software that relies on Arm architecture features. Arm-hosted runners are powered by Cobalt 100 processors, based on the Arm Neoverse N2. The free runners have 4 vCPUs and Armv9-A features including Scalable Vector Extension 2 (SVE2).

The output of the `lscpu` command is below.

![Arm-hosted runner info #center](_images/lscpu.png)

## What do I need to change in my workflow to use Arm-hosted runners?

To use Arm-hosted Linux runners, use the `ubuntu-22.04-arm` and `ubuntu-24.04-arm` labels in your public repository workflow runs.

For example, if you have a workflow file with:

```console
runs-on: ubuntu-24.04
```

You can replace it with the Arm-hosted runner:

```console
runs-on: ubuntu-24.04-arm
```

## How can I find out more about the software installed on the Arm-hosted runners?

You can look at the [GitHub Actions Partner Images repository](https://github.com/actions/partner-runner-images/) for information about the runner images and installed software.

You can also use the repository to report issues or request additional software be added to the images.



28 changes: 4 additions & 24 deletions content/learning-paths/cross-platform/github-arm-runners/runner.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,16 @@
---
title: "Create a new Arm-hosted runner"
title: "Create a new Arm-hosted runner for private repositories"

weight: 2
weight: 4

layout: "learningpathall"
---

## How can I build multi-architecture container images?
## Can I use Arm-hosted runners for private repositories?

Building multi-architecture container images for complex projects is challenging.
Yes, you can use Arm-hosted runners in private repositories.

There are two common ways to build multi-architecture images, and both are explained in [Learn how to use Docker](/learning-paths/cross-platform/docker/).

The first method uses instruction emulation. You can learn about this method in [Build multi-architecture images with Docker buildx](/learning-paths/cross-platform/docker/buildx/). The drawback of emulation is slow performance, especially for complex builds which involve tasks such as compiling large C++ applications.

The second method uses multiple machines, one for each architecture, and joins the images to create a multi-architecture image using Docker manifest. You can learn about this method in [Use Docker manifest to create multi-architecture images](/learning-paths/cross-platform/docker/manifest/). The drawback of the manifest method is its complexity as it requires multiple machines.

Arm-hosted runners from GitHub provide a way to create multi-architecture images with higher performance and lower complexity compared to the two methods described above.

When you use Arm-hosted runners, you don't need to worry about self-hosting (managing servers) or instruction emulation (slow performance).

## What are Arm-hosted runners?

Runners are the machines that execute the jobs in a GitHub Actions workflow. An Arm-hosted runner is a runner that is managed by GitHub and uses the Arm architecture. This means that you don't need to provide a server to run Actions workflows. GitHub provides the system and runs the Action workflows for you.

Arm-hosted runners are available for Linux and Windows.

This Learning Path uses Linux.

{{% notice Note %}}
You must have a Team or Enterprise Cloud plan to use Arm-hosted runners.
{{% /notice %}}

Two types of GitHub-hosted runners are available; standard runners, and larger runners. Larger runners are differentiated from standard runners because users can control the amount of RAM, the number of CPUs, and configure the allocated disk space. Larger runners have additional options for a static IP address and the ability to group runners and control settings across the runner group. Currently, Arm-hosted runners are a type of larger runner.

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ layout: learningpathall

Linaro’s verification service is implemented using components from the open source [Veraison](https://github.com/veraison) project.

The URL for reaching this experimental verifier service is http://veraison.test.linaro.org:8080.
The URL for reaching this experimental verifier service is https://veraison.test.linaro.org:8443.

To check that you can reach the Linaro attestation verifier service, run the following command:

```bash
curl http://veraison.test.linaro.org:8080/.well-known/veraison/verification
curl https://veraison.test.linaro.org:8443/.well-known/veraison/verification
```

This is a simple call to query the well-known characteristics of the verification service. If it succeeds, it will return a JSON response that looks something like this:
Expand Down Expand Up @@ -67,15 +67,15 @@ The easiest way to do this is to use the `jq` utility.
You can save the public key by repeating the curl command from the previous step and use `jq` to filter the response down to just the public key part. Save it into a file called `pkey.json`:

```bash
curl -s -N http://veraison.test.linaro.org:8080/.well-known/veraison/verification | jq '."ear-verification-key"' > $HOME/pkey.json
curl -s -N https://veraison.test.linaro.org:8443/.well-known/veraison/verification | jq '."ear-verification-key"' > $HOME/pkey.json
```
You have now saved the public key of the verification service. You are now ready to submit the CCA example attestation token to the service and get an attestation result.

## Submit the CCA Example Token to the Verification Service
To submit the example CCA attestation token to the verification service, you will need to use the `evcli` tool once again. First, configure the correct API endpoint for the Linaro verifier service:

```bash
export API_SERVER=http://veraison.test.linaro.org:8080/challenge-response/v1/newSession
export API_SERVER=https://veraison.test.linaro.org:8443/challenge-response/v1/newSession
```

Now submit the token using the following command. The output of this command is an attestation result, which will be saved in a file called `attestation_result.jwt`:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ https://github.com/Arm-Labs/gh_armrunner_mlops_gtsrb
```
Fork the repository, using the **Fork** button:

![#fork](/images/fork.png)
![#fork](images/fork.png)

Create a fork within a GitHub Organization or Team where you have access to Arm-hosted GitHub runners.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,13 @@ Navigate to the **Train Model** workflow under the `Actions` tab.

Press the `Run workflow` button and run the workflow on the main branch.

![Train_workflow](/images/train_run.png)
![Train_workflow](images/train_run.png)

The workflow starts running. It takes about 8 minutes to complete.

Click on the workflow to see the output from each step of the workflow.

![Actions_train](/images/actions_train.png)
![Actions_train](images/actions_train.png)

Expand on the `Run training script` step to see the training loss per epoch followed by `Finished Training`.

Expand All @@ -86,7 +86,7 @@ Finished Training

Confirm the model is generated and saved as an artifact in the job's overview.

![#artifact](/images/artifact.png)
![#artifact](images/artifact.png)

This trained model artifact is used in the next step.

Expand Down Expand Up @@ -143,7 +143,7 @@ Complete the steps below to modify the testing workflow file:

4. Copy the 11-digit ID number from the end of the URL in your browser address bar.

![#run-id](/images/run-id.png)
![#run-id](images/run-id.png)

5. Navigate back to the **Code** tab and open the file `.github/workflows/test-model.yml`.

Expand All @@ -168,7 +168,7 @@ The workflow starts running.

Click on the workflow to view the output from each step.

![Actions_test](/images/actions_test.png)
![Actions_test](images/actions_test.png)

Click on the **Run testing script** step to see the accuracy of the model and a table of the results from the PyTorch profiler.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ recommended_path: "/learning-paths/servers-and-cloud-computing/csp/"

further_reading:
- resource:
title: Where to Buy (Ampere Computing)
link: https://amperecomputing.com/where-to-buy
title: Ampere Computing
link: https://amperecomputing.com/developers/
type: website

# ================================================================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Run a llama.cpp chatbot powered by Arm Kleidi technology

overview: |
This Arm learning path shows how to use a single c4a-standard-64 Google Axion instance -- powered by an Arm Neoverse CPU -- to build a simple "Token as a Service" RAG-enabled server, used below to provide a chatbot to serve a small number of concurrent users.
This Arm learning path shows how to use a single c4a-highcpu-72 Google Axion instance -- powered by an Arm Neoverse CPU -- to build a simple "Token as a Service" RAG-enabled server, used below to provide a chatbot to serve a small number of concurrent users.

This architecture would be suitable for businesses looking to deploy the latest Generative AI technologies with RAG capabilities using their existing CPU compute capacity and deployment pipelines. It enables semantic search over chunked documents using FAISS vector store. The demo uses the open source llama.cpp framework, which Arm has enhanced by contributing the latest Arm Kleidi technologies. Further optimizations are achieved by using the smaller 8 billion parameter Llama 3.1 model, which has been quantized to optimize memory usage.

Expand Down
Loading
Loading