Futhark 如何向程序员暴露不规则数组:一次表达力的小扩展
来源:futhark-lang.org — 2026-08-12
📋 概述
Futhark 是高性能纯函数式数据并行数组语言。最近它新增了 flattening 非均匀数据并行与递归函数等强力特性:前者主要是编译器变换,让 map (\n -> i64.sum (iota n)) ns 这类内层并行度因迭代而异的表达式得以充分压榨 GPU 并行性。本文讨论在此基础上如何通过一个相当小的语言扩展,从根本上提升 Futhark 的表达力,让程序员能自然地处理不规则数组,并演示了现在能写出哪些新程序。
🔑 核心要点
- flattening 让内层并行度不一的嵌套 map也能充分利用 GPU。
- 它本质是编译期变换,不改变程序语义,只影响生成的 GPU 代码质量。
- Futhark 的核心限制是不允许不规则数组——多维数组中子数组大小不同。
- 一个小而有力的语言扩展有望让不规则数组成为一等公民。
💡 金句
让内层并行度参差不齐的代码,也能在 GPU 上跑出满血性能。
👍 0
👎 0
← 返回 Lobsters 首页