Debian on Athlon Project

目的

Athlon(特にXP以前)は、プログラムがAthlonに 最適化されてコンパイルされていると、 より高速に実行できるようである。 そこで、Debianにあるバイナリを全部Athlonに対応するために、 コンパイルしなおしてみよう、という野望のもとにこのプロジェクトは こっそりと始められた。

現実

初期は本当に冗談のような感じだった。 しかしながら、少しづつ自分が作成したツールが どんどん実用になって行ったので、 とりあえず、本当につくってみようか、と考える。

進行状況

athlon-builder
athlon-builderパッケージが提供された。 そのパッチがpentium-builder 0.16.1で 取り込まれたので、Debianのpentium-builder でathlon対応のバイナリを作成することが できるようになった(はずである)。2001年12月22日。 pentium-builder関連のソフトウェアとして apt-buildや、apt-srcなどがある。 あまり相互に協調動作することはまだ考えていないようだ。
pbuilder
簡素なBuild Daemonとして作成された、pbuilderであるが、 目的は、athlon-builderを利用して、 どんどんパッケージをコンパイルすることである。 一応動作はしている。 0.16で、一つバグが修正され、ローカルな アーカイブをきちんと利用できるようになった。 Athlon-builderを利用してコンパイルする手法について考察する必要 がある。
pbuilderを駆動するシステム
pbuilderを連続して稼働させ、 どんどんパッケージをコンパイルするシステムを 構築して、テスト運用している。 6000 パッケージ程がコンパイルできるようになっている(2002年12月30日)。 まだ、コンパイルに失敗するパッケージが多数存在するため、 その問題を解決する必要がある。 問題のあるパッケージの一覧は、こちらにおいてある。
pbuilderの結果を公開するシステム
これも、多分必要。いろいろな人が関連しているものを作成しているらしい。(未完成)

2001年春ころから地道に作成しているツール群が どんどんと実用になってきているようです。 問題としては、一部のパッケージがコンパイルできないという ことがあります。 また、このプロジェクトに 意味があるのかどうか、ベンチマークをとれる状況に持って行くまでの 気力が必要であるという問題があります。

コンパイルしてみた時間の表を出してみます。これは2002年5月29日に 終了した全パッケージコンパイルの場合です。

graph for build time

ダウンロード

まだ、ないです、まだ、多分。

利用

まだ利用できるものはpbuilderくらいしかありません。

この手法が有用でありうる理由

現在、Debianには、一部のアーキテクチャに対して、 最適なライブラリを自動選択するようなシステムが存在する。 それは、ATLASライブラリなどで利用されている。 しかしながら、最適なバイナリを利用するための組織だっている 手法は存在していない。

このプロジェクトは、そのような、バイナリを生成するための、 一般的な手法を生み出すことを目的としている。 そして、最終的には、最適化が必要とされるバイナリを 自動的に再コンパイルしてくれるようなシステムが目標とされている。

同一のソースファイルと、同一のdebian/rulesファイルが、 違う環境変数で実行されることにより、 そのアーキテクチャに対して最適なバイナリを生成することになる。 gccg++は、最適なバイナリをコンパイルするため に、必要なコマンドに置き換えられている(例えば、 /usr/bin/gccというスクリプトが存在していて、 そのスクリプトが実行されたときに、 /usr/bin/gcc-athlon -march=athlon -mcpu=athlon のようなコマンドが実行されるように設定されている)。 このような機構は、アーキテクチャに対して最適化した パッケージを生成するために必要な労力を大きく削減すると予想している。

このプロジェクトは現在あまり進展していない。 それは、このプロジェクト専用のハードウェアというものが 存在していないことと、 時間と注意が必要なことによる。 すくなくともハードディスクの表面を摩耗するのは確か。


Junichi Uekawa

$Id: athlon-debian.html.ja,v 1.18 2002/12/30 14:53:34 dancer Exp $