Visão Geral
Curso Mojo e LLVM Entendendo a Compilacao para Desempenho. Este curso oferece uma visão técnica, profunda e estruturada sobre como a linguagem Mojo utiliza a infraestrutura do LLVM para entregar desempenho de nível próximo ao baixo nível, mantendo alta produtividade. O aluno irá compreender todo o pipeline de compilação, desde o código-fonte em Mojo até a geração de código otimizado para CPU moderna, explorando IR (Intermediate Representation), otimizações estáticas e dinâmicas, análise de tipos, controle de memória, vetorização, paralelismo e backend de geração de código. O curso conecta teoria de compiladores com prática aplicada, capacitando o profissional a escrever código Mojo consciente do compilador, maximizando throughput, reduzindo latência e explorando arquiteturas modernas.
Objetivo
Após realizar este curso Mojo e LLVM: Entendendo a Compilação para Desempenho, você será capaz de:
- Compreender o pipeline completo de compilação do Mojo baseado em LLVM
- Analisar e interpretar LLVM IR gerado a partir de código Mojo
- Escrever código Mojo otimizado para o compilador
- Explorar otimizações de baixo nível para CPU moderna
- Entender como memória, tipos e paralelismo afetam a geração de código
- Avaliar impacto de decisões de design no desempenho final
Publico Alvo
-
- Desenvolvedores Mojo
- Engenheiros de Software focados em alto desempenho
- Engenheiros de Sistemas
- Profissionais interessados em compiladores
- Desenvolvedores Python que buscam performance extrema
-
Pre-Requisitos
-
- Conhecimentos sólidos em Python
- Noções básicas de arquitetura de computadores
- Familiaridade com conceitos de desempenho e otimização
- Interesse em linguagens compiladas
-
Materiais
Ingles/Portugues
Conteúdo Programatico
Module 1: Introduction to Mojo and LLVM
- Overview of Mojo Compilation Model
- What Is LLVM and Why It Matters
- Performance-Oriented Language Design
Module 2: Compiler Fundamentals Applied to Mojo
- Frontend, Middle-End, and Backend
- Abstract Syntax Tree and Semantic Analysis
- Type System and Compile-Time Guarantees
Module 3: LLVM Intermediate Representation (IR)
- Understanding LLVM IR Structure
- Mapping Mojo Constructs to LLVM IR
- Reading and Analyzing Generated IR
Module 4: Optimization Passes and Transformations
- Common LLVM Optimization Passes
- Inlining, Loop Unrolling, and Dead Code Elimination
- How Optimizations Impact Performance
Module 5: Memory Model and Data Layout
- Stack vs Heap Allocation
- Alignment, Padding, and Cache Effects
- Controlling Memory for Performance
Module 6: Vectorization and Parallelism
- Auto-Vectorization in LLVM
- SIMD and CPU Instruction Sets
- Parallel Code Generation Strategies
Module 7: Backend and Code Generation
- Target Architectures and Instruction Selection
- Register Allocation and Scheduling
- Emitted Machine Code Analysis
Module 8: Writing Performance-Aware Mojo Code
- Coding Patterns That Help the Compiler
- Avoiding Performance Pitfalls
- Benchmarking and Validation Techniques
TENHO INTERESSE