プログラミング · 1 min read · Oct 20, 2025

この新しい関数型プログラミング言語は、アプリ用のC、Pythonコードを生成できます

Futharkを使用すると、機械学習やその他の数学集約型アプリのためのGPUプログラミングが容易になります

コペンハーゲン大学のコンピュータサイエンス学部の研究者たちは、機械学習やその他の高性能アプリケーションで動作するコードを作成するために設計されたオープンソースの関数型プログラミング言語Futharkを発表しました。

研究者たちは、FutharkはGPUプログラミングのための標準C/C++フレームワークよりも便利に使用できることを目的としていると述べています。Futharkの主な特徴は、既存のアプリに統合するためのCおよびPythonコードを自動的に生成できることです。FutharkはHaskellで書かれています。

今日、ほとんどのGPUプログラミングは、GPU上で動作するコードを生成するためにCまたはC++のバリエーションを使用するOpenCLやCUDAのようなフレームワークを使用しています。Futharkはフレームワークを使用する代わりにCコードを生成できますが、CよりもHaskellやStandard MLに似た独自の言語です。

Futharkの開発者たちは、この言語の表現力が並列性を使用する複雑な操作を記述するのを容易にすると主張しています。これには、ネストされた並列化(他の並列操作内の並列操作)をサポートする能力が含まれます。Futharkは「ハードウェアがサポートするフラットな並列性に効率的にマッピングすることの複雑さにもかかわらず、これを実現できます。多くのプログラムがこの機能に依存しています。」

研究者の主張は根拠のないものではありません。Futhark GPUプログラムを他のGPUライブラリと比較した初期ベンチマークは、有望な結果を示しました。最大セグメント和テストでは、Futharkは競合するオープンソースプロジェクトのほぼ2倍の速度でした。他のケースでは、競争と同等か、わずかに遅いだけでした。Futharkの開発者たちは、これを言語の新しさと、メモリの割り当てと再利用に対する洗練されていないアプローチに起因しているとしています。

現在のFutharkツールチェーンは、さまざまなターゲットでCPUまたはGPUのいずれかで実行可能なコードを生成できます。前者の場合、GCCでコンパイルされたCコードを生成します。後者の場合、OpenCLプラットフォームを使用するCコードを生成します。したがって、同じコードは、必要に応じてCPUを使用するMapDデータベースのようなGPU加速アプリがサポートするハードウェア上で実行されます。

速度向上を望むPythonユーザーは、Futharkで自動的にラップされたPythonモジュールでコードを生成できます。GPUコードは、GPUとインターフェースするためのライブラリであるPyOpenCLを介して実行されます。これには、コンウェイのライフゲームのFuthark駆動のGPU実装などの例があります。

Futharkはまだ進行中の作業であり、開発者たちは他の研究者や開発者のためにGitHubにコードを公開しています。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。