- Asahi Linux プロジェクトは、Apple M1 および M2 Mac で Linux を動作可能にし、無線、オーディオ、グラフィックスアクセラレーションを含む、ほとんどのハードウェア対応を完了
- このプロジェクトは 2020年12月に Hector Martin が開始し、Alyssa Rosenzweig が M1 GPU のシェーダー命令セットをリバースエンジニアリングしながら参加
- 2022年12月、Asahi Linux は OpenGL ドライバー とカーネルドライバーを組み合わせてグラフィックスアクセラレーションを実現し、3D ゲームの実行が可能に
- 2023〜2024年に Rosenzweig は OpenGL 4.6 および Vulkan 1.4 規格を満たすドライバーを開発し、Proton を通じた Windows ゲーム実行をサポート
- このオープンソースプロジェクトは Apple の非標準ドライバーを超えて 業界標準を達成し、macOS に Vulkan を導入するきっかけを提供
オープンソースプロジェクトの重要性と利点
- Asahi Linux は Apple M1 および M2 チップで Linux を動作可能にするオープンソースプロジェクトであり、独占的ソフトウェアに依存せず 完全なハードウェア対応を提供
- Apple の独自ドライバーが OpenGL および Vulkan 規格に準拠していない一方で、Asahi Linux は 業界標準への準拠を目標とし、信頼性と互換性を高めている
- Panfrost のような他のオープンソースグラフィックスドライバープロジェクトと比べると、Asahi Linux は リバースエンジニアリングによって急速に進化し、Proton を活用した ゲーミング性能の最適化で差別化されている
プロジェクトの開始と初期作業
- 2020年12月、Hector Martin が Asahi Linux を立ち上げ、Apple M1 GPU のリバースエンジニアリングを推進
- Alyssa Rosenzweig は Collabora で Panfrost(オープンソースの Arm Mali GPU ドライバー)に取り組む中で参加
- 当初は簡単な助言を提供するつもりだったが、M1 Mac を購入して シェーダー命令の分析を開始
- 2021年初頭、Rosenzweig は数週間で 三角形レンダリングに成功し、3D グラフィックスの基礎を築いた
- 三角形レンダリングは 3D グラフィックスにおけるすべての作業の出発点であり、その後の複雑なグラフィックス実装を可能にする
- その後 シェーダーコンパイラを開発し、学期末試験の後に OpenGL ドライバーを実装して回転するギアを実演
ドライバー開発と成果
- 2021〜2022年、Rosenzweig は リバースエンジニアリングを続けながら OpenGL ドライバーを改善し、macOS で 3D ゲームを実行可能にした
- Asahi Lina が Apple GPU 向け カーネルドライバーを作成し、ユーザー空間の OpenGL ドライバーと結合
- 2022年12月、Asahi Linux は グラフィックスアクセラレーションをサポートし、完全なグラフィックススタックを完成
- 2023年、Rosenzweig はトロント大学コンピュータサイエンス学部の最後の学期を過ごしながら、ドライバー開発を並行して進めた
- Panfrost プロジェクトの成功後、M1 GPU ドライバーを新たな挑戦と位置づけた
- 目標: OpenGL 4.6、Vulkan、Proton ゲーミング対応
OpenGL および Vulkan 規格への準拠
- 2023年、OpenGL 3.1 を実装し、OpenGL ES 3.1 規格認証を取得
- OpenGL ES 3.2 はジオメトリシェーダーを要求するが、Apple ハードウェアはこれをサポートしていないため、コンピュートシェーダーでエミュレーション
- Mesa ドライバーの共通コードを活用して迅速に開発し、ジオメトリ/テッセレーションのエミュレーションを実装
- 2024年1月、OpenGL 4.6 規格認証を取得し、Apple の非標準ドライバーを上回った
- Vulkan ドライバー開発は数か月で Vulkan 1.3 認証を取得
- ジオメトリ/テッセレーションのエミュレーションを Vulkan に統合し、Direct3D および Proton ゲームをサポート
- Vulkan 1.4 仕様発表当日に 規格認証を実装し、即座に配布
- Karol Herbst は OpenCL 3.0 認証を取得し、Rosenzweig のコンパイラと rusticl フロントエンドを活用
- スパーステクスチャ対応を追加し、Direct3D 12 および Proton を通じて高度なゲームの実行を可能にした
プロジェクトの成果と影響
- Asahi Linux は OpenGL 4.6、OpenGL ES 3.2、OpenCL 3.0、Vulkan 1.4 をサポートし、すべての目標を達成
- ドライバーは Mesa に完全統合され、性能最適化も完了
- Proton ゲーミングにより Windows ゲームを Linux 上で円滑に実行し、Steam Deck の技術を活用
- Apple ハードウェアでは Vulkan は不適切だという誤解を打ち破り、LunarG の KosmicKrisp プロジェクトを通じて macOS に Vulkan を導入
- Rosenzweig はプロジェクト成功後に Apple エコシステムを離れ、Asahi Linux チームが作業を引き継ぐ
- 次の挑戦として Intel の Xe HPG アーキテクチャへ移行する計画
結論
- Asahi Linux は Apple M1 GPU の リバースエンジニアリングを通じて、オープンソースのグラフィックスドライバー開発に成功
- 業界標準への準拠と Proton 対応によって、Apple ハードウェアにおける Linux ゲーミングの可能性を拡大
- このプロジェクトは、オープンソースコミュニティの協力と リバースエンジニアリング技術の力を示し、独占的システムへの代替案を提示した
4件のコメント
Asahi Lina をフォローしていたので、配信で M1 GPU のリバースエンジニアリングとカーネル開発をしているのを以前見たことがあるのですが、今はアーカイブ化されたのか見当たりませんね…
うわ.....................................................................................................................................怪物だな
Hacker Newsのコメント
この成果は技術的な深さだけでなく、その象徴性という面でも非常に大きな意味を持っている。Alyssaの仕事は本当に刺激的で、彼女は深い技術的洞察と長年の献身によってApple Siliconにオープンソースのグラフィックスをもたらし、リバースエンジニアやオープンソース開発者たちに大きな刺激を与えた。好奇心と粘り強さがあれば壁を乗り越えられることを新しい世代に示してくれたし、この数年間の進化を見てきたのは本当に楽しかった。彼女と、このプロジェクトを可能にしたすべての人々に大きな敬意を表したい。そしてIntelでの新たな挑戦も応援している
本当にひとつの時代の終わりのように感じる。最初にこの旅を始めたのが18歳で、それを5年でやり遂げたというのは驚きだ。Asahi LinuxでGPUを動かせると信じていた人は多くなかった。彼女が「Onto the next challenge!」のリンクで言っていた次の挑戦が何を意味するのか気になる。もしかするとIntel Xe-HPGに取り組むことになるのではと思う
そう、その通り。彼女の履歴書にも、今月からIntelでオープンソースのグラフィックスドライバ関連の仕事を始めたと書かれている
「三角形を描く」ことから始めて、今ではM1でVulkanまでupstreamしたというのは本当にすごい。実際、これによってApple Siliconゲスト環境でのVenus/virtio経路が可能になったわけで、まさにこの機能を必要としている人は多い
「私はLinuxグラフィックスを監督する委員会に所属していて、その半分がトランスジェンダーです。もしLinuxのことを大切に思うなら、トランスジェンダーへの攻撃に抵抗しなければなりません。少しでも良心があるなら、これに立ち向かうべきだと思います」 (ブログリンク)
純粋な好奇心から尋ねるのだけれど、非常に才能のあるトランスジェンダーのプログラマーが、比率としてかなり多いように感じる。トランスジェンダー人口は全体ではごく少数なのに、あるグループの半分がトランスジェンダーというのは本当に珍しいことだ。それに「programmer socks」のようなミームもあるし、自分自身も腕の立つトランスジェンダーのプログラマーを何人も知っている
このコメントの文脈がよく分からない。同じ著者のものではあるけれど、M1 GPUとは直接の関係があるようには見えない
投稿者が「不可能」なハードウェアで最新のグラフィックスAPIを素早く実装し、そのまま未練なく去っていった姿は本当に強烈だ。完璧な「マイクドロップ」だ
この3つをどうやって同時にこなせたのか本当に気になる。自分は1つですらまともにやるのが大変なのに
実際、卓越した能力を持つごく少数の人の一人なのだと思う。もちろん、仕事をしながら無意味な努力に時間を浪費せず、十分な報酬も得ているからこそ、こうした結果が可能だったのだろう。これほどの自己管理能力と目標志向性は本当にまれなケースだ。おそらく家族や社交生活、ほかの趣味はほとんどないのではないかと思う
伝説の10倍生産性を持つエンジニアの話みたいだ
本当に素晴らしい成果だと思う。彼女が23歳で成し遂げたことは、自分が10年以上この業界で働いて積み上げてきたものより多い。本当に才能あるエンジニアだ
Asahiチーム、特にGPUの仕事には本当に感謝したい。OpenGL開発をいつか再開するのが自分のウィッシュリストにあったのだけれど、最近fedora-asahi remixを日常用マシンとして使うようになって、コンピュータを本当に自分のものとして所有している感覚を取り戻せた。彼らの仕事は、自分がZig PinePhoneコードを引き続き試してみようという気持ちにさせてくれる。GPUをpoke'd framebuffer以上に動かせる実力はないけれど。AsahiがサポートするAPIのチェックリストは本当に圧倒的で、こんな短期間で成し遂げたことは信じがたい。あらためて感謝したいし、Intelでの幸運も祈っている
彼女は8月にIntelで働き始めたが、わずか数か月で、多くの人なら1年かかるような成果の大半をすでに達成している。本当に驚きだ (履歴書リンク)
特別に言いたいことがたくさんあるわけではないが、本当に「よくやった!」と称賛したい。そしてこれから何をするのか楽しみにしている
Alyssaは本当に刺激を与えてくれる人だ。彼女が自分の興味を持てる分野で働けていることをうれしく思う
一人で成し遂げたことだとは思えないほどドラマチックな話でもあり、印象的です。
ブログに入って resume も読んでみましたが、まさに怪物ですね。
もう人生そのものがグラフィックドライバです;;