# [Laptops and Desktops](https://learn.arm.com/learning-paths/laptops-and-desktops/)

## Subjects
- CI-CD
- Containers and Virtualization
- ML
- Migration to Arm
- Performance and Architecture

## OS
- Android
- ChromeOS
- Linux
- Windows
- macOS

## Skill Level
- Advanced
- Introductory

## Tools, Software, and Languages
- Alacritty
- Android Studio
- Arm Development Studio
- Arm Performance Libraries
- Arm64EC
- Assembly
- Bash
- C
- CCA
- Clang
- CMake
- CPP
- csharp
- CSS
- Docker
- dotnet
- ExecuTorch
- FastAPI
- FFmpeg
- GCC
- Generative AI
- Git
- GitHub
- GitHub Actions
- GitLab
- Google Benchmark
- Google Test
- HTML
- Hugging Face
- Hyper-V
- i3
- Intrinsics
- IsaacLab
- IsaacSim
- JavaScript
- KleidiCV
- Kubernetes
- KVM
- LeRobot
- Linux
- llama.cpp
- LLM
- LLVM
- llvm-mca
- MCP
- MediaPipe
- MSBuild
- MSVC
- MTE
- MuJoCo
- Neon
- Neovim
- Node.js
- Ollama
- ONNX Runtime
- OpenCV
- perf
- PGO
- PowerShell
- Pytest
- Python
- PyTorch
- QEMU
- Qt
- Raspberry Pi
- RDP
- Reachy Mini
- Remote.It
- RME
- Runbook
- Rust
- SME2
- SmolVLA
- SSH
- SVE
- SVE2
- Testcontainers
- Topo
- Trusted Firmware
- Ubuntu
- Visual Studio
- Visual Studio Code
- vLLM
- Windows Forms
- Windows Performance Analyzer
- Windows Presentation Foundation
- Windows Sandbox
- WindowsPerf
- WinUI 3
- WSL
- Xamarin Forms

## [New? Learn the basics of Laptops and Desktops.](https://learn.arm.com/learning-paths/laptops-and-desktops/intro/)

## Learning paths

- [Get started with Windows Subsystem for Linux on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/)
- [Build Robot Simulation and Reinforcement Learning Workflows with Isaac Sim and Isaac Lab on DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/dgx_spark_isaac_robotics/)
- [Accelerate matrix multiplication performance with SME2](https://learn.arm.com/learning-paths/cross-platform/multiplying-matrices-with-sme2/)
- [Fine-tune SmolVLA for an SO-101 pick-and-place task on an NVIDIA DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/finetune-smolvla-lerobot/)
- [Advance robotics reinforcement learning with Isaac Lab on DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/dgx_spark_isaac_robotics2/)
- [Automate Windows on Arm virtual machine deployment with QEMU and KVM on Arm Linux](https://learn.arm.com/learning-paths/laptops-and-desktops/win11-vm-automation/)
- [Develop desktop applications with Windows Forms on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_forms/)
- [Get started with the Windows Performance Analyzer plugin for WindowsPerf](https://learn.arm.com/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/)
- [Implement CI/CD with Windows on Arm host](https://learn.arm.com/learning-paths/laptops-and-desktops/windows_cicd_github/)
- [Sampling CPython with WindowsPerf](https://learn.arm.com/learning-paths/laptops-and-desktops/windowsperf_sampling_cpython/)
- [Analyze performance data with the Visual Studio extension for WindowsPerf](https://learn.arm.com/learning-paths/laptops-and-desktops/windowsperf-vs-extension/)
- [Create OpenCV applications on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win-opencv/)
- [Deploy GitHub Actions workflows using Windows Sandbox](https://learn.arm.com/learning-paths/laptops-and-desktops/win_sandbox_dot_net_cicd/)
- [Develop Windows applications with WinUI3 on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_winui3/)
- [Measure application resource and power usage on Windows on Arm with FFmpeg and PowerShell](https://learn.arm.com/learning-paths/laptops-and-desktops/win-resource-ps1/)
- [Port the Win32 library to Arm64](https://learn.arm.com/learning-paths/laptops-and-desktops/win_win32_dll_porting/)
- [Build .NET MAUI Applications on Arm64](https://learn.arm.com/learning-paths/laptops-and-desktops/win_net_maui/)
- [Build a Windows on Arm native application with .NET](https://learn.arm.com/learning-paths/laptops-and-desktops/win_net/)
- [Develop desktop applications with Chromium Embedded Framework on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_cef/)
- [Benchmarking .NET 8 applications on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_net8/)
- [Build native Windows on Arm applications with Python](https://learn.arm.com/learning-paths/laptops-and-desktops/win_python/)
- [Develop applications with Windows Presentation Foundation (WPF) on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_wpf/)
- [Develop cross-platform applications with Xamarin Forms on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_xamarin_forms/)
- [Get started with WindowsPerf](https://learn.arm.com/learning-paths/laptops-and-desktops/windowsperf/)
- [Optimize C++ applications on Windows on Arm using profile-guided optimization](https://learn.arm.com/learning-paths/laptops-and-desktops/win_profile_guided_optimisation/)
- [Optimize Windows applications using Arm Performance Libraries](https://learn.arm.com/learning-paths/laptops-and-desktops/windows_armpl/)
- [Run Phi-3 on Windows on Arm using ONNX Runtime](https://learn.arm.com/learning-paths/laptops-and-desktops/win_on_arm_build_onnxruntime/)
- [Get started with Laptops and Desktops](https://learn.arm.com/learning-paths/laptops-and-desktops/intro/)
- [Extend OpenClaw for a local-first AI assistant across Arm platforms](https://learn.arm.com/learning-paths/laptops-and-desktops/openclaw_continuum/)
- [Deploy a Windows on Arm virtual machine on Microsoft Azure](https://learn.arm.com/learning-paths/cross-platform/woa_azure/)
- [Sample Instructions with WindowsPerf and Arm SPE](https://learn.arm.com/learning-paths/cross-platform/windowsperf_sampling_cpython_spe/)
- [Optimize SIMD code with vectorization-friendly data layout](https://learn.arm.com/learning-paths/cross-platform/vectorization-friendly-data-layout/)
- [Install Arch Linux with the i3 window manager on a Pinebook Pro](https://learn.arm.com/learning-paths/laptops-and-desktops/pinebook-pro/)
- [Learn about integer and floating-point conversions](https://learn.arm.com/learning-paths/cross-platform/integer-vs-floats/)
- [Understand the `restrict` keyword in C99](https://learn.arm.com/learning-paths/cross-platform/restrict-keyword-c99/)
- [Use SIMD.info to port SIMD intrinsics across Arm architectures](https://learn.arm.com/learning-paths/cross-platform/simd-info-demo/)
- [Learn SVE and SME programming with SIMD Loops](https://learn.arm.com/learning-paths/cross-platform/simd-loops/)
- [Memory latency for application software developers](https://learn.arm.com/learning-paths/cross-platform/memory-latency/)
- [Deploy containerized workloads to Arm-based Linux targets with Topo](https://learn.arm.com/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/)
- [Develop a native C++ library on an Arm-based machine](https://learn.arm.com/learning-paths/cross-platform/matrix/)
- [Access remote devices with Remote.It](https://learn.arm.com/learning-paths/cross-platform/remoteit/)
- [Build a multimodal retail restocking assistant on Armv9 with MNN](https://learn.arm.com/learning-paths/cross-platform/multimodel_mnn_v9/)
- [Create and train a PyTorch model for digit classification using the MNIST dataset](https://learn.arm.com/learning-paths/cross-platform/pytorch-digit-classification-arch-training/)
- [Migrate x86-64 SIMD to Arm64](https://learn.arm.com/learning-paths/cross-platform/vectorization-comparison/)
- [Optimize C and C++ code using compiler autovectorization techniques](https://learn.arm.com/learning-paths/cross-platform/loop-reflowing/)
- [Porting architecture specific intrinsics](https://learn.arm.com/learning-paths/cross-platform/intrinsics/)
- [Profile ExecuTorch models with SME2 on Arm](https://learn.arm.com/learning-paths/cross-platform/sme-executorch-profiling/)
- [Use LLVM Machine Code Analyzer to analyze assembly performance on Arm](https://learn.arm.com/learning-paths/cross-platform/mca-godbolt/)
- [Write SIMD code on Arm using Rust](https://learn.arm.com/learning-paths/cross-platform/simd-on-rust/)
- [Run and benchmark BitNet-2B inference on Arm CPUs with Litespark-Inference](https://learn.arm.com/learning-paths/cross-platform/litespark-inference/)
- [Build a CI/CD pipeline using GitLab-hosted Arm runners](https://learn.arm.com/learning-paths/cross-platform/gitlab-managed-runners/)
- [Build a CI/CD pipeline with GitLab on Google Axion](https://learn.arm.com/learning-paths/cross-platform/gitlab/)
- [Run ASP.NET Core Web Server on Arm64](https://learn.arm.com/learning-paths/laptops-and-desktops/win_asp_net8/)
- [Use Amazon DynamoDB for your IoT applications running on Arm64](https://learn.arm.com/learning-paths/laptops-and-desktops/win_aws_iot_dynamodb/)
- [Use AWS Lambda for IoT applications running on Arm64](https://learn.arm.com/learning-paths/laptops-and-desktops/win_aws_iot_lambda/)
- [Use self-hosted Arm64-based runners in GitHub Actions for CI/CD](https://learn.arm.com/learning-paths/laptops-and-desktops/self_hosted_cicd_github/)
- [Adding Memory Tagging to a Dynamic Memory Allocator](https://learn.arm.com/learning-paths/laptops-and-desktops/memory-tagged-dynamic-memory-allocator/)
- [Automate Windows on Arm builds with GitHub Arm-hosted runners](https://learn.arm.com/learning-paths/laptops-and-desktops/gh-arm-runners-win/)
- [Build an offline voice chatbot with faster-whisper and vLLM on DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/dgx_spark_voicechatbot/)
- [Create Linux virtual machines with Hyper-V](https://learn.arm.com/learning-paths/laptops-and-desktops/hyper-v/)
- [Fine-tune PyTorch models on DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/pytorch-finetuning-on-spark/)
- [Orchestrate a persistent local AI agent with Hermes on NVIDIA DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/dgx_persistent_agent/)
- [Run AI models with Docker Model Runner](https://learn.arm.com/learning-paths/laptops-and-desktops/docker-models/)
- [Unlock quantized LLM performance on Arm-based NVIDIA DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/dgx_spark_llamacpp/)
- [Use Arm64EC with Windows 11 on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_arm64ec/)
- [Build a RAG pipeline on Arm-based NVIDIA DGX Spark](https://learn.arm.com/learning-paths/laptops-and-desktops/dgx_spark_rag/)
- [Build and run a native Windows on Arm Qt application](https://learn.arm.com/learning-paths/laptops-and-desktops/win_arm_qt/)
- [Develop cross-platform desktop applications with Electron on Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/electron/)
- [Install Ubuntu on ChromeOS Crostini as an LXC container](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/)
- [Port applications to Arm64 using Arm64EC](https://learn.arm.com/learning-paths/laptops-and-desktops/win_arm64ec_porting/)
- [Use Amazon S3 for your IoT applications running Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_aws_iot_s3/)
- [Build a Windows on Arm native application with clang](https://learn.arm.com/learning-paths/laptops-and-desktops/llvm_putty/)
- [Build and test KleidiCV on macOS](https://learn.arm.com/learning-paths/laptops-and-desktops/kleidicv-on-mac/)
- [Create IoT applications with Windows on Arm and AWS IoT Core](https://learn.arm.com/learning-paths/laptops-and-desktops/win_aws_iot/)
- [Integrate AWS Lambda with DynamoDB for IoT applications running Windows on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/win_aws_iot_lambda_dynamodb/)
- [Create and deploy a custom Topo Project](https://learn.arm.com/learning-paths/cross-platform/create-your-own-topo-project/)
- [Run a local AI agent with Ollama to visualize CPU orchestration on Arm](https://learn.arm.com/learning-paths/cross-platform/ai-agent-cpu-orchestration/)
- [Boost C++ performance by optimizing loops with boundary information](https://learn.arm.com/learning-paths/cross-platform/cpp-loop-size-context/)
- [Build an edge AI Reachy Mini app with Raspberry Pi, MediaPipe, and MuJoCo](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/)
- [Build multi-architecture container images with Docker Build Cloud](https://learn.arm.com/learning-paths/cross-platform/docker-build-cloud/)
- [Learn about function multiversioning](https://learn.arm.com/learning-paths/cross-platform/function-multiversioning/)
- [Learn how to use Docker](https://learn.arm.com/learning-paths/cross-platform/docker/)
- [Run ERNIE-4.5 Mixture of Experts model on Armv9 with llama.cpp](https://learn.arm.com/learning-paths/cross-platform/ernie_moe_v9/)
- [Understand floating-point behavior across x86 and Arm architectures](https://learn.arm.com/learning-paths/cross-platform/floating-point-behavior/)
- [Use the Eigen Linear Algebra Library on Arm](https://learn.arm.com/learning-paths/cross-platform/eigen-linear-algebra-on-arm/)
- [Automate MCP server testing using Pytest and Testcontainers](https://learn.arm.com/learning-paths/cross-platform/automate-mcp-with-testcontainers/)
- [Build multi-architecture container images with GitHub Arm-hosted runners](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/)
- [Get started with Realm Management Extension (RME)](https://learn.arm.com/learning-paths/cross-platform/cca_rme/)
- [Write a Dynamic Memory Allocator](https://learn.arm.com/learning-paths/cross-platform/dynamic-memory-allocator/)
- [Write Neon intrinsics using GitHub Copilot to improve Adler32 performance](https://learn.arm.com/learning-paths/cross-platform/adler32/)
