| | --- |
| | license: mit |
| | language: |
| | - en |
| | tags: |
| | - reinforcement-learning |
| | - compiler-optimization |
| | - transfer-learning |
| | - meta-learning |
| | - llvm |
| | --- |
| | |
| | # π§ AI Compiler Optimizer |
| |
|
| | RL κΈ°λ° C μ½λ μλ μ΅μ ν λͺ¨λΈ. `-O1` λλΉ νκ· **+51.9%** μλ ν₯μ. |
| |
|
| | ## μ±λ₯ μμ½ |
| |
|
| | | λ°©λ² | μ€ν
| νκ· speedup | |
| | |---|---|---| |
| | | x86 PPO νμ΅ | 20,000 | +51.9% | |
| | | ARM64 μ μ΄νμ΅ | 2,000 | +47.2% | |
| | | ARM64 λ©ννμ΅ | 100 | +45.0% | |
| |
|
| | ## λΉ λ₯Έ μμ |
| |
|
| | ### μ€μΉ |
| | ```bash |
| | pip install stable-baselines3 gymnasium |
| | sudo apt install clang llvm qemu-user-static |
| | ``` |
| |
|
| | ### μ μν€ν
μ²μ 100μ€ν
μ μ |
| | ```bash |
| | git clone https://huggingface.co/sosonsong/machineai-compiler-optimizer |
| | cd machineai-compiler-optimizer |
| | |
| | python3 meta_agent.py \ |
| | --meta-base models/meta_init.zip \ |
| | --arch aarch64-linux-gnu \ |
| | --adapt-steps 100 \ |
| | --out-path models/my_adapted.zip |
| | ``` |
| |
|
| | ### μ±λ₯ μΈ‘μ |
| | ```bash |
| | python3 benchmark.py --model models/my_adapted.zip |
| | ``` |
| |
|
| | ## λͺ¨λΈ νμΌ |
| | - `models/x86v2_base.zip` : x86 λ² μ΄μ€ λͺ¨λΈ (20,000μ€ν
νμ΅) |
| | - `models/meta_init.zip` : Reptile λ©ν μ΄κΈ°ν λͺ¨λΈ (λΉ λ₯Έ μ μμ©) |
| | - `models/arm64_transfer.zip` : ARM64 μ μ΄ λͺ¨λΈ |
| |
|
| | ## μ§μ μν€ν
μ² |
| | - `x86_64` (λ€μ΄ν°λΈ) |
| | - `aarch64-linux-gnu` (QEMU λλ λ€μ΄ν°λΈ ARM64) |
| | - κΈ°ν clang μ§μ μν€ν
μ² (μ μ΄νμ΅μΌλ‘ μ μ κ°λ₯) |
| |
|
| | ## νμ΅ νκ²½ |
| | - clang 18.1.3 / LLVM |
| | - stable-baselines3 PPO |
| | - Python 3.12 |
| |
|