Skip to content

Commit 8130021

Browse files
Merge branch 'ArmDeveloperEcosystem:main' into main
2 parents 3867a5c + a44b330 commit 8130021

File tree

31 files changed

+757
-434
lines changed

31 files changed

+757
-434
lines changed

content/install-guides/acfl.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,33 @@ install takes place **after** ACfL, you will no longer be able to fully
142142
uninstall ACfL.
143143
{{% /notice %}}
144144

145+
## Download and install using System Packages - Ubuntu Linux
146+
147+
Arm Compiler for Linux is available to install with the Ubuntu system package manager `apt` command.
148+
149+
### Setup the ACfL package repository:
150+
151+
Add the ACfL `apt` package repository to your Ubuntu 20.04 or 22.04 system:
152+
153+
```bash { target="ubuntu:latest" }
154+
sudo apt update
155+
sudo apt install -y curl
156+
source /etc/os-release
157+
curl "https://developer.arm.com/packages/ACfL%3A${NAME}-${VERSION_ID/%.*/}/${VERSION_CODENAME}/Release.key" | sudo tee /etc/apt/trusted.gpg.d/developer-arm-com.asc
158+
echo "deb https://developer.arm.com/packages/ACfL%3A${NAME}-${VERSION_ID/%.*/}/${VERSION_CODENAME}/ ./" | sudo tee /etc/apt/sources.list.d/developer-arm-com.list
159+
sudo apt update
160+
```
161+
162+
The ACfL Ubuntu package repository is now ready to use.
163+
164+
### Install ACfL
165+
166+
Download and install Arm Compiler for Linux with:
167+
168+
```bash { target="ubuntu:latest" }
169+
sudo apt install acfl
170+
```
171+
145172
### Set up environment
146173

147174
Arm Compiler for Linux uses environment modules to dynamically modify your user environment. Refer to the [Environment Modules documentation](https://lmod.readthedocs.io/en/latest/#id) for more information.

content/install-guides/windows-perf-wpa-plugin.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ Alternatively, you can download the `.zip` file from a command prompt:
9090
```console
9191
mkdir wpa-plugin
9292
cd wpa-plugin
93-
curl -L -O https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases/download/1.0.2/wpa-plugin-1.0.2.zip
93+
curl -L -O https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases/download/1.0.3/wpa-plugin-1.0.3.zip
9494
```
9595

9696
Extract the `.dll` file from the downloaded `.zip` file.
9797

9898
```console
99-
tar -xmf wpa-plugin-1.0.2.zip
99+
tar -xmf wpa-plugin-1.0.3.zip
100100
```
101101

102102
The file `WPAPlugin.dll` is now in your `wpa-plugin` directory.
@@ -110,7 +110,7 @@ Use the `-addsearchdir` flag to tell `wpa` where to find plugins.
110110
For example, if you downloaded the `.dll` in your `Downloads` directory, you can run `wpa` as shown below:
111111

112112
```bash
113-
wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2
113+
wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.3
114114
```
115115
116116
##### Option 2: Set an environment variable.
@@ -135,7 +135,7 @@ To open a JSON file directly from the command line, you can use the `-i` flag to
135135
For example, to open `timeline_long.json` in your `downloads` directory, run the command:
136136

137137
```console
138-
wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2 -i %USERPROFILE%\Downloads\timeline_long.json
138+
wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.3 -i %USERPROFILE%\Downloads\timeline_long.json
139139
```
140140
## How do I uninstall the WPA plugin?
141141

content/learning-paths/cross-platform/simd-info-demo/_index.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
---
22
title: Introduction to SIMD.info
33

4-
draft: true
4+
55
cascade:
6-
draft: true
6+
77

88
minutes_to_complete: 30
99

10-
who_is_this_for: This is for advanced topic for software developers interested in porting SIMD code across Arm platforms.
10+
who_is_this_for: This Learning Path is for software developers who are interested in porting SIMD code across Arm platforms.
1111

1212
learning_objectives:
13-
- Learn how to use SIMD.info’s tools and features, such as navigation, search, and comparison, to simplify the process of finding equivalent SIMD intrinsics between architectures and improving code portability.
13+
- Describe how to use SIMD.info’s tools and features, such as navigation, search, and comparison, to simplify the process of finding equivalent SIMD intrinsics between architectures to improve code portability.
1414

1515
prerequisites:
1616
- A basic understanding of SIMD.
17-
- Access to an Arm platform with SIMD supported engine, with recent versions of a C compiler (Clang or GCC) installed.
17+
- Access to an Arm platform with a SIMD-supported engine, installed with recent versions of a C compiler such as Clang or GCC.
1818

19-
author_primary: Georgios Mermigkis & Konstantinos Margaritis, VectorCamp
19+
author_primary: Georgios Mermigkis and Konstantinos Margaritis, VectorCamp
2020

2121
### Tags
2222
skilllevels: Advanced
2323
subjects: Performance and Architecture
2424
armips:
25-
- Aarch64
26-
- Armv8-a
27-
- Armv9-a
25+
- AArch64
26+
- Armv8-A
27+
- Armv9-A
2828
tools_software_languages:
2929
- GCC
3030
- Clang

content/learning-paths/cross-platform/simd-info-demo/_next-steps.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
next_step_guidance: You should explore **SIMD.info** more and find out porting opportunities between different SIMD engines.
33

4-
recommended_path: /learning-paths/cross-platform/
4+
recommended_path: /learning-paths/cross-platform/vectorization-friendly-data-layout/
55

66
further_reading:
77
- resource:

content/learning-paths/cross-platform/simd-info-demo/_review.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,34 @@ review:
44
question: >
55
What is SIMD.info?
66
answers:
7-
- An online resource for SIMD C intrinsics for all major architectures
8-
- It's an online forum for SIMD developers
9-
- A book about SIMD programming
7+
- It's an online resource for SIMD C intrinsics for all major architectures.
8+
- It's an online forum for SIMD developers.
9+
- It's a book about SIMD programming.
1010
correct_answer: 1
1111
explanation: >
12-
While it allows comments in the SIMD intrinsics, SIMD.info is not really a forum. It is an online **free** resource to assist developers porting C code between popular architectures, for example, from SSE/AVX/AVX512 to Arm ASIMD.
12+
While it allows comments in the SIMD intrinsics, SIMD.info is not a forum. It is an online free resource to assist developers porting C code between popular architectures, for example, from SSE/AVX/AVX512 to Arm ASIMD.
1313
1414
- questions:
1515
question: >
1616
What architectures are listed in SIMD.info?
1717
answers:
18-
- Intel SSE and Arm ASIMD
19-
- Power VSX and Arm ASIMD/SVE
20-
- Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX
18+
- Intel SSE and Arm ASIMD.
19+
- Power VSX and Arm ASIMD/SVE.
20+
- Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX.
2121
correct_answer: 3
2222
explanation: >
23-
At the time of writing SIMD.info supports Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX as SIMD architectures. Work is in progress to include Arm SVE/SVE2, MIPS MSA, RISC-V RVV 1.0, s390 Z and others.
23+
SIMD.info supports Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX as SIMD architectures. Work is in progress to include Arm SVE/SVE2, MIPS MSA, RISC-V RVV 1.0, s390 Z and others.
2424
2525
- questions:
2626
question: >
2727
What are SIMD.info's major features?
2828
answers:
29-
- Hierarchical tree, Search, AI code translation
30-
- Search, Hierarchical tree, Code examples
31-
- Hierarchical tree, Search, Intrinsics Comparison, Code examples, Equivalents mapping, links to official documentation
29+
- Hierarchical tree, search, and AI code translation.
30+
- Search, hierarchical tree, and code examples.
31+
- Hierarchical tree, search, intrinsics comparison, code examples, equivalents mapping, and links to official documentation.
3232
correct_answer: 3
3333
explanation: >
34-
SIMD.info provides multiple features, including a hierarchical tree, Search facility, Intrinsics Comparison, Code examples, Equivalents mapping, links to official documentation and others. AI code translation is not a feature of SIMD.info but will be the focus of another project, SIMD.ai.
34+
SIMD.info provides multiple features, including a hierarchical tree, search facility, intrinsics comparison, code examples, equivalents mapping, links to official documentation, and others. AI code translation is not a feature of SIMD.info but is the focus of another project, SIMD.ai.
3535
3636
3737

content/learning-paths/cross-platform/simd-info-demo/conclusion.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@ weight: 8
66
layout: learningpathall
77
---
88

9-
### Conclusion and Additional Resources
9+
### Conclusion and further reading
1010

11-
Porting SIMD code between architecture can be a daunting process, in many cases requiring many hours of studying multiple ISAs in online resources or ISA manuals of thousands pages. Our primary focus in this work was to optimize the existing algorithm directly with SIMD intrinsics, without altering the algorithm or data layout. While reordering data to align with native Arm instructions could offer performance benefits, our scope remained within the constraints of the current data layout and algorithm. For those interested in data layout strategies to further enhance performance on Arm, the [vectorization-friendly data layout learning path](https://learn.arm.com/learning-paths/cross-platform/vectorization-friendly-data-layout/) offers valuable insights.
11+
Porting SIMD code between architectures can be a daunting process, often requiring many hours of studying multiple ISAs in online resources or ISA manuals that run into thousands of pages.
1212

13-
Using **[SIMD.info](https://simd.info)** can be be instrumental in reducing the amount of time spent in this process, providing a centralized and user-friendly resource for finding **NEON** equivalents to intrinsics of other architectures. It saves considerable time and effort by offering detailed descriptions, prototypes, and comparisons directly, eliminating the need for extensive web searches and manual lookups.
13+
The primary focus of this Learning Path is to optimize the existing algorithm directly with SIMD intrinsics, without altering the algorithm or data layout. While reordering data to align with native Arm instructions can offer performance benefits, this is outside the scope of this Learning Path.
1414

15-
While porting between vectors of different sizes is more complex, work is underway -at the time of writing this guide- to complete integration of **SVE**/**SVE2** Arm extensions and allow matching them with **AVX512** intrinsics, as they are both using predicate masks.
15+
If you are interested in data layout strategies to further enhance performance on Arm, see the Learning Path *Optimize SIMD code with vectorization-friendly data layout* linked to in the **Next Steps** section at the of this Learning Path.
1616

17-
Please check **[SIMD.info](https://simd.info)** regularly for updates on this.
17+
Using SIMD.info can be instrumental in reducing the amount of time spent in this process, providing a centralized and user-friendly resource for finding NEON equivalents to intrinsics of other architectures. It saves considerable time and effort by offering detailed descriptions, prototypes, and comparisons directly, eliminating the need for extensive web searches and manual lookups.
18+
19+
While porting between vectors of different sizes is more complex, work is underway to complete the integration of SVE and SVE2 Arm extensions and allow matching them with AVX512 intrinsics, as they both use predicate masks.
20+
21+
You can check **[SIMD.info](https://simd.info)** for updates.

content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ layout: learningpathall
77
---
88

99
### The Challenge of SIMD Code Portability
10-
One of the biggest challenges developers face when working with SIMD code is making it portable across different platforms. SIMD instructions are designed to increase performance by executing the same operation on multiple data elements in parallel. However, each architecture has its own set of SIMD instructions, making it difficult to write code that works on all of them without major changes to the code and/or algorithm.
10+
SIMD instructions are designed to improve performance by executing the same operation on multiple data elements in parallel. One of the biggest challenges developers face when working with SIMD code is making it portable across different platforms.
1111

12-
To port software written using Intel intrinsics, like SSE/AVX/AVX512, to Arm Neon, you have pay attention to data handling with the different instruction sets.
12+
Each architecture has its own set of SIMD instructions, which makes it difficult to port code without major changes to either the code itself, or the algorithm, or both.
1313

14-
Having to port the code between architectures can increase development time and introduce the risk of errors during the porting process. Currently, developers rely on ISA documentation and manually search across various vendor platforms like [Arm Developer](https://developer.arm.com/architectures/instruction-sets/intrinsics/) and [Intel Intrinsics Guide](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html) to find equivalent instructions.
14+
For example, to port software written using Intel intrinsics, such as SSE/AVX/AVX512, to Arm Neon, you must address issues with data handling with the different instruction sets.
1515

16-
[SIMD.info](https://simd.info) aims to solve this by helping you find equivalent instructions and providing a more streamlined way to adapt your code for different architectures.
16+
Porting the code between architectures can increase development time and introduce the risk of errors. Currently, developers rely on ISA documentation and must manually search across various vendor platforms such as [Arm Developer](https://developer.arm.com/architectures/instruction-sets/intrinsics/) and [Intel Intrinsics Guide](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html) to find equivalent instructions.
17+
18+
[SIMD.info](https://simd.info) aims to address this challenge by enabling developers to find equivalent instructions and providing a streamlined way to adapt code for different architectures.

0 commit comments

Comments
 (0)