サービスを開始したばかりです。サイトとサービスはまだ改善中のため、不正確な点や不具合があるかもしれません。あらかじめお詫び申し上げます。誤りや想定どおりに動かない点にお気づきですか? ご連絡ください。すぐに修正します。

JA
ログイン 無料見積もり
バックテスト · モデル学習 · パラメータ探索

繰り返し計算を高速に、結果は同じまま

バックテスト、シミュレーター、モデルの計算コアをお送りください。Rust crate はセルフサービスのダッシュボードから、C、C++、Python は個別の技術評価から始めます。公開ビルドで結果をご自身で確認できます。改善幅と検収条件は、ご自身の処理とプラットフォームに合わせて合意します。

1時間 → 11分指標のパラメータ探索、実測 5.7× の場合、レベル2 対 無償のレベル0
1時間 → 4分スパイキングネットワークの学習探索、実測 14.2× の場合、レベル2 対 無償のレベル0
0ビット元のコードとの出力の差
ご利用の流れ 初期評価は無料
  1. ホットコードを送る

    ビジネスロジックを除いた計算コアだけで十分です。まだコードを共有できない場合は、無償のハーネスで作る測定データパッケージから始められます。

  2. 検証方法を合意する

    Rust のビルド調整と自動最適化は購入前に測定します。個別のレベル 2 作業では、範囲、測定可能な最低値、検収手順を合意します。

  3. 有料の作業を選ぶ

    レベル 1 は実測の高速化が 10% 未満なら課金しません。レベル 2 の価格、前払い、検収は個別の注文で合意します。出力の等価性は合意したプラットフォームで検証します。

ダウンロードして実行できる実測事例は、このすぐ下にあります ↓
実測済み

標準的なベンチマークで、出力は元のコードとビット単位で一致

公開されているコードと、広く使われているデータセットで測定しています。Silesia圧縮コーパス、Xiphの動画クリップ、時系列予測用のETTデータセット、テクニカル分析の指標です。いずれも、手を加えていないオリジナルに対してデータセット全体を実際に順次実行した測定であり、出力はすべてバイト単位で比較しています。コーデックの正当性証明は、独立したレビューを通過しています。

全3レベル · バイナリ公開

Python taのADX、ATR、PSAR指標

ta 0.11ライブラリのRust移植版で、Pythonとビット単位で一致します。100万本のバーでパラメータをスイープし、5種類のウィンドウでATR、ADX、±DIを、4通りの設定でParabolic SARを計算します。各レベルをビルドして測定環境で測定し、公開しています。全レベルの出力はバイト単位で一致し、プログラムがpanicする入力でも同じです。

5.7×レベル2 対 無償のレベル0、実行全体の時間
18×計算部分、Numba比
< 48時間レベル2のエンジニア作業時間

同じアルゴリズムのNumba版(これもビット単位で一致)は、計算に335 ms、pandas.read_csvに201 msかかります。レベル2は計算が18 ms、CSVのパースが20 ms、プログラム全体で81 msです。Python taは10万本のバーあたり20.5秒です。

ベースライン:1実行あたりのサイクル数(M1、中央値) 13億7,690万 503 ms
レベル0LTO、codegen-units、target-cpu · 無償 12億4,860万463 ms · 基準
レベル1証明付きの自動最適化 7億9,140万342 ms · 1.58× サイクル · 1.35× 時間
レベル2エンジニア:新しい計算方式 1億4,330万81 ms · 8.7× サイクル · 5.7× 時間
測定環境:Zen 3、vPMU サイクル、交互に 9 ラウンド。時間はデータの読み込みを含むプログラム全体です。レベル1 とレベル2 は無償のレベル0 と比較しています。測定したのは公開しているファイルそのものです。このケースでは自動最適化だけでサイクル数が 1.58× 改善し、最大の効果はレベル2 から得られています。
ダウンロード · MIT · Linux x86-64 パッケージ一式1 MB:全レベルのプログラム、ベースラインのソースコード、データ生成ツール、測定結果 ベースライン レベル0 レベル1 レベル2 検証方法 SHA256SUMS
全3レベル · バイナリ公開

スパイキングニューラルネットワークの学習パラメータ探索(BindsNET モデル)

再帰結合を持つ 128 個の LIF(漏れ積分発火)ニューロンのリザーバーで、入力重みは STDP(BindsNET の PostPre)でオンライン学習します。探索では、5,000 ステップの合成した市場風の系列で、閾値、膜時定数、学習率を変えて 24 個のネットワークを学習します。Rust プログラムの出力は、メインの入力でも生成した 54 セットでも、BindsNET スクリプトとビット単位で一致します。

15.8×レベル2 対 無償のレベル0、サイクル数(時間では 14.2×)
395×BindsNET での同じ探索との比較、1 コア
0 ビットBindsNET との差

PyTorch 上の BindsNET 0.3.3(CPU、1 スレッド、同じコア):探索に 24.0 秒かかり、その大半はステップごとの Python とディスパッチのオーバーヘッドです。レベル2 は同じコアで 60.9 ms です。ここではビルド調整だけでは通常のビルドより 6% 遅くなりました。自動最適化はレベル0 比でサイクル数 3.89×、レベル2 は 15.8× です。

ベースライン:1実行あたりのサイクル数(M1、中央値) 35億2,500万 805 ms
レベル0LTO、codegen-units、target-cpu · 無償 37億4,260万865 ms · 基準
レベル1証明付きの自動最適化 9億6,240万222 ms · 3.89× サイクル · 3.90× 時間
レベル2エンジニア:新しい計算方式 2億3,700万60.7 ms · 15.8× サイクル · 14.2× 時間
測定環境:Zen 3、隔離した VM 内の vPMU サイクル、交互に 9 ラウンド。CCX は測定用に確保しました(16 の論理 CPU のうち 2 つは管理外)。レベル1 とレベル2 は無償のレベル0 と比較しています。測定したのは公開しているファイルそのものです。
ダウンロード · MIT · Linux x86-64 パッケージ一式0.8 MB:全レベルのプログラム、ベースラインのソース、BindsNET スクリプト、データ生成器、測定結果 ベースライン レベル0 レベル1 レベル2 検証方法 SHA256SUMS
16〜20×適切なネイティブ移植比
≈12,000×vn.py 自身の最適化機能比
戦略最適化 · vn.py · バイナリ公開済み

vn.py のパラメータ最適化:同じ上位10件を一桁速く

vn.py の総当たり最適化で、付属の移動平均戦略の 600 通りのパラメータを探索します。当社のプログラムは同じ上位10組を、同じシャープレシオ、リターン、ドローダウン、取引回数で出力し、AVX2 マシンではビット単位で一致します。各移動平均を一度だけ計算する適切なネイティブ移植より 16〜20× 速く、vn.py 自体より約 12,000× 速く、その大部分は Python から離れることによるものです。AMD Zen 3 と Zen 4 で測定しました。

ダウンロード · MIT · Linux x86-64 パッケージ一式60 KB:当社のプログラム、2つのネイティブ移植、vn.py 用ドライバ、データ生成器、2つのプラットフォームでの測定結果 測定内容
2.3〜7.4×7指標、C
2.0〜6.0×Python から、変更なし
Cライブラリ · そのまま置き換え · バイナリ公開済み

TA-Lib のテクニカル指標:より速い置き換えライブラリ

TA-Lib 0.8.1 の C ライブラリを同じ ABI で置き換えるものです。C プログラムも TA-Lib の Python ラッパーも変更なしで使え、すべての出力が公式ライブラリとビット単位で一致します(459万回の呼び出しで確認)。100万本のバーに対するパラメータスイープで、7つの指標(CCI、SAR、DX、ADX、EMA、STOCH、RSI)は公式ビルドと -march=native ビルドの速い方より 2.3〜7.4× 速く、AMD Zen 3 と Zen 4 で測定しました。変更していない Python ラッパー経由でも、同じスイープが 2.0〜6.0× 速くなります。

ダウンロード · BSD-3 · Linux x86-64 パッケージ一式3.2 MB:ライブラリ、ベンチマーク用プログラム、ビット一致の検証ツール、2つのプラットフォームでの測定結果 測定内容
5.6〜5.9×元のRust比
2.3〜3.6×PyTorch + Inductor比(全コア)

Rustによる時系列予測

公式の学習済み重みを使ったDLinearを、ETTの4データセットでテスト分割の全ウィンドウについて、元のRust実装と比較しました。全コアを使った場合、Inductorコンパイラを使うPyTorchより2.3〜3.6倍高速です。PatchTSTでは2.2〜2.5倍です。

1.29〜1.36×

rav1e 0.8:AV1エンコード

測定前に無作為に選んだXiphの5クリップ(Elephants Dream、Park Joy、Johnny、Bus、Stefan)で、speed 6と10のエンコード全工程を測定。すべてのクリップで高速化し、ビットストリームはバイト単位で一致します。

ダウンロード · BSD-2 · Linux x86-64 パッケージ一式 ベースライン TAKT 検証方法 SHA256SUMS
3.4×元のRust比
4.0×C版libbz2比

bzip2の展開

純Rust実装のbzip2-rsクレートで、Silesiaコーパスの全12ファイル(212 MB)を展開。すべてのファイルが2.8〜4.2倍速くなりました。40万件のテストストリーム(うち36万件は破損)でも、データとエラーメッセージの両方が一致します。

ダウンロード · MIT · Linux x86-64 パッケージ一式 ベースライン TAKT 検証方法 SHA256SUMS

測定環境:AMD Threadripper PRO 5975WX(Zen 3、AVX2)。データセット全体を実際に実行したときの中央値の比で、コーデックは7ラウンド、モデルは5回の反復です。シングルスレッドでは、これらのモデルはまだPyTorchの方が高速です。PyTorchは加算の順序を入れ替えますが、当社は元のコードとのビット単位の一致を保っているためです。これらは特定のコードでの結果であり、お客様のコードに対する約束ではありません。お客様のクレートについては、測定してから数値を提示します。

料金

確認済みの高速化にだけお支払い

レベル1の価格は、ホットコードの規模と達成した高速化で決まります。結果はお支払い前に確認できるため、お支払いは得られた成果の分だけです。

レベル0
$0
  • ビルドプロファイル:LTO、codegen-units、target-cpu、PGO
  • お客様自身で適用するフラグのレシピ
  • ホットコード2,000行まで
  • 数分で完了

数値は予測ではなく、測定環境での実測値です。

レベル2 · エンジニア
個別見積もり 30%前払い
  • 何よりもまず計算パラダイムの転換、次にデータレイアウト、SIMDなど
  • 数時間〜数日
  • 残額はメトリクスに基づく検収後

最低保証値に届かなかった場合は、契約書の表に従って代金を残高に返金します。

レベル1の料金

レベル0からの高速化率1,000行以下1,000〜3,000行3,000〜1万行1万行超
10〜25%$290$490$890要相談
25〜100%$790$1,190$2,390要相談
100〜200%$1,190$1,790$3,590要相談
200%超$1,990$2,990$5,990要相談

高速化率は、新しいビルドがレベル0の何倍速いかから1を引いた値です。100%は2倍、200%は3倍の速さを意味し、サイクル数では25%で−20%、100%で−50%、200%で−67%に相当します。無償のレベル0はホットコード2,000行までが対象で、それを超える場合はレベル1に含まれます。プラットフォームの追加:+30%。行数はllvm-covで数え、測定パスポートのベンチマークで実行されるコードのみを対象とします(詳しくは「行数はどのように数えますか?」をご覧ください)。

どれだけ節約できるか

現在の1回の実行時間と実行頻度を入力してください。高速化の倍率は無料見積もりの結果をお使いください。5.7×は実測したtaの事例です。

月あたりに短縮される待ち時間—
月あたりに節約される計算費用—

入力値による単純な計算です:短縮時間 = 実行回数 × 実行時間 × (1 − 1/倍率)。お客様のコードでの倍率は、お支払い前に実測します。

CIサブスクリプション:新しいリリースでも高速化を維持

プラン月額(年払い)含まれる内容
Crate$149ホットコード2,000行まで、月4リリースまで、1プラットフォーム
Team$3991万行まで、月20リリースまで、2プラットフォーム
Enterprise$1,500から複数のクレート、SLA、お客様のハードウェアでの検収

サブスクリプションは1年契約で、年額($1,788、$4,788、または$18,000から)は契約時に残高から差し引かれます。新しいリリースのたびに改めて最適化し、等価性を検証します。契約水準まで高速化できなかったリリースがあった場合は、そうしたリリースがその月に占める割合に相当する補償を、月額料金のその割合分を残高に加算するか、その割合分の期間だけサブスクリプションを延長するか、お好きな方法で受け取れます。たとえば、ある月の4リリースのうち1つが未達なら、月額料金の4分の1、または4分の1か月です。

お支払いはすべて顧客ダッシュボードの残高を通じて行います。残高はStripe 経由のカード決済(カード、Apple Pay、Google Pay、各国の決済手段)、銀行振込、またはプロモーションコードでチャージでき、各サービスの料金はご注文時に差し引かれます。未使用の入金残高はご請求に応じて払い戻し、プロモーションコードやボーナスによるボーナス残高はサービスの支払いに使えます。

対象

高速化の効果が最も大きい領域

現在は x86-64(AMD Zen 3、AVX2)に対応しています。最も効果が大きいのは、各ステップが前のステップに依存するフィードバックを持つ密な反復計算です。漸化式で計算する指標、履歴に沿った戦略シミュレーション、スパイキングネットワークやその他のリカレントモデルの学習、多数のパラメータセットにわたる探索などです。メモリ待ちが長いコードやデータをビット単位で解析するコードも大きく速くなります。

バックテストと戦略シミュレーション

トレーディングエンジン、マーケットデータのリプレイ、パラメータの探索と進化的最適化。非公開の顧客事例:自動最適化で2.5〜10.5倍、エンジニアの作業で最大33.7倍。公開事例:taの指標、無償のレベル0 に対し実行全体の時間で5.7倍。

モデル学習とパラメータ探索

スパイキングネットワーク(BindsNET 風)やその他のリカレントモデルのように、強いフィードバックを持つモデルの学習と、多数のパラメータセットにわたる探索です。レベル2 では Python のモデルをビット単位で一致させて Rust へ移植します。公開事例:BindsNET モデルの STDP 学習探索で、無償のレベル0 に対して 15.8×、BindsNET そのものに対して 395×、出力は完全に一致。

アーカイブとデータパイプライン

アーカイブの展開、WikipediaやOpenStreetMapのダンプ、科学データやゲノムデータ、ログストレージ。bzip2:元のRust比3.4倍、C比4.0倍。

動画とAV1

rav1eを使う動画プラットフォームやクラウドでのトランスコード。エンコード全体で1.29〜1.36倍。クラスタではサーバー台数のおよそ4分の1に相当する差です。

CPUでのML推論

Pythonを使わずRustで動かす時系列モデル:電力負荷、需要、エネルギーの予測。元のRust比5.6〜5.9倍、全コア使用時はPyTorchより高速です。

コードの種類実測の高速化測定対象
状態を持つシミュレーション、1つの履歴に沿った候補探索2.5〜34×トレーディングエンジン
スパイキングネットワーク:STDP 学習、パラメータ探索3.9〜15.8×BindsNET: LIF + STDP
テクニカル分析の指標、パラメータスイープ1.6〜8.7×ta: ADX, ATR, PSAR
戦略最適化:パラメータのグリッドサーチ16〜20×vn.py: DoubleMaStrategy
C の指標ライブラリ(C または Python から呼び出し)2.0〜7.4×TA-Lib 0.8.1
テーブル走査とビット単位の解析を行うデコーダ2.5〜4×bzip2、Silesia
全コアでの小規模モデルの推論2.2〜5.9×DLinear, PatchTST, ETT
モード探索を行うエンコーダ1.3〜1.4×rav1e、Xiph
暗号プリミティブ、手書きSIMDのコーデック、強力なCライブラリがあるフォーマット効果なしSHA-256、ChaCha20、x264、LZ4

taとスパイキングネットワーク:無償のレベル0に対する比、サイクル数。その他の行:元のプログラム、または事例に記載がある場合はCの参照ライブラリに対する比です。

仕組み

最初の測定から署名付きビルドの納品まで

自分で測定する

無償のハーネスで、サイクル数、命令数、キャッシュミス、分岐予測ミス、実時間を記録できます。ソースコードなしで測定データパッケージを送っていただければ、暫定的な範囲をお伝えします。

ホットコードを送る

推定ではなく実測を行うには、ソースコードが必要です。ビジネスロジックを除いた計算コアだけを切り出すお手伝いをし、そのベースラインを基準測定環境で測定します。

測定パスポートを確定する

プラットフォーム、ワークロード、ツールのバージョン、測定プロトコルを作業開始前に記録します。結果はこの数値を基準に評価します。

3つの数値を確認する

レベル0とレベル1は、事前に測定環境で実測します。レベル2は、範囲、期間、最低保証値で提示します。

ビルドを受け取る

お支払い後に、署名付きライブラリ、ヘッダ、SBOM、測定結果と等価性検証のレポートをお渡しします。

エンジニアの方へ

裏付け

当社が何に署名し、どう測定し、お客様ご自身で何を確認できるか:測定パスポート、オープンなハーネス、お客様のコードの隔離、一般的な選択肢との比較です。

保証

特定のハードウェアで、具体的な数値を約束します

作業開始前に、測定パスポートを確定します。CPUのモデルと周波数、入力データのハッシュを含むワークロード、rustcとツールのバージョン、測定プロトコルです。契約はこれらのメトリクスについてのみ定めます。

M1実CPUでのサイクル数基準測定環境で周波数を固定し、PMUカウンタで計測します。ベースラインと新バージョンは交互に実行します。これが保証の対象です。
M2決定論的なサイクル数と命令数バージョンを固定したシミュレーションです。当社でもお客様の環境でも同じ数値になるため、相互検証やCIに使えます。
M3時間 p50 / p99レイテンシが重要な用途では、p99で保証することもできます。
M4ピークメモリ制約条件:ベースラインからの悪化が、合意した割合を超えないこと。
M5正当性差分テストとファジング。最適化の過程で一度も使われていない非公開入力でも検証します。
契約書の文言

「プラットフォームPにおいて、測定パスポートのプロトコルに従い、M4およびM5を満たすことを条件として、M1の中央値はベースラインに対して少なくともX%低下する」

実CPUのサイクル数を使う理由。シミュレータは再現性のある数値を出せますが、常に正しいとは限りません。幅の広いSIMDによる周波数低下、プリフェッチャ、マルチスレッドの影響を捉えられないためです。そのため契約には実ハードウェアを用い、シミュレーションは相互検証に使います。

非公開入力。データの一部は検収まで手元に残していただきます。これにより、ベンチマークに合わせ込んだ高速化を防ぎます。このデータは暗号化した状態で送っていただき、バイナリが完成した時点で鍵をお渡しいただきます。

ハーネス

ご自身で測定

無償のオープンソースのコマンドラインツール(MIT)で、当社の測定環境と同じ種類の測定値、つまりハードウェアカウンタによるユーザーモードのサイクル数と命令数を取得できます。コードなしで測定データを送り、検収もご自身で行えます。

run

サイクル数、命令数、キャッシュミスと分岐予測ミス、実時間、メモリ。中央値、ばらつき、95%信頼区間、品質評価。

:::

複数のビルドを交互のラウンドで測定するため、温度や負荷の変動がすべてに同じように影響します。

compare

変更前後の比較:利用規約の定義による高速化係数とその区間、出力の一致の確認。終了コードでCIジョブを止められます。

show

送信前にパッケージを確認できます。コード、出力、ファイルの中身は含まず、ハッシュとマシン情報だけです。--redact を使うと、パスと引数もハッシュに置き換わります。

$ TAKT_INPUTS=data taskset -c 44 takt-harness run --input data \
    -- bin/ta-bench-base ::: bin/ta-bench-level2
machine   AMD Ryzen Threadripper PRO 5975WX 32-Cores · x86-64-v3
checks    pinned to CPU 44 · governor performance · SMT on
protocol  9 rounds after 1 warm-up · CI: percentile bootstrap

metric          baseline       new   factor   95% CI of factor
cycles:u         1.370 G   141.3 M   9.695×   9.582 – 9.927
instructions:u   3.156 G   391.7 M   8.057×   8.057 – 8.057
wall time      484.7 ms  66.90 ms   7.245×   6.983 – 7.346
stdout    match · sha256 ada682c61e5e… · 973 B
quality   good · 9 runs, typical deviation 0.06% / 0.73% (MAD)

verdict   outputs identical · cycles:u speed-up factor 9.695×
bundle    readings.json  # ソースコードなしで送信可能

当社のショーケース ta-indicators(100万バー)での実際の出力を短縮したもので、元のビルドとレベル2のビルドを比較しています。測定データパッケージには、マシン情報、プログラム・入力・出力のハッシュ、ばらつき付きのメトリクス、品質評価が含まれます。

ソースコードとLinux用のビルド済みバイナリ:github.com/rdmitry0911/takt-harness(MIT)

セキュリティ

お客様のコードは、ネットワークから切り離された隔離環境でのみ実行します

隔離

ビルドはすべて、ネットワークにアクセスできない使い捨てのマイクロVMで行います。ベンチマークノードが同時に扱うのは1社のお客様だけです。

暗号化と削除

プロジェクトごとに個別の鍵を使用します。30日後、またはボタン操作ひとつで、鍵をデータとともに破棄します。

コードはお客様のもの

コードとデータを第三者に渡すことはなく、他のお客様向けの作業に使うこともなく、期限どおりに削除します。お客様のアルゴリズムを高速化する過程で見つけた一般的な数学的手法は、お客様のコード、データ、名称を含まない形で当社のライブラリに加えます。これらは、契約書およびアップロード前に締結するNDAの条項です。

署名付きパッケージ

全ファイルのSHA-256を公開鍵で署名、構成要素のSBOM、計測レポート、ビルドに使ったツールチェーン。

クリーンさを検証可能

ビルドはネットワークにアクセスせず、他のプログラムを起動せず、ファイルを書き込みません。パッケージ内のスクリプトで、お客様のデータを使って確認できます(ネットワークなしでの実行とstrace)。

ホットなモジュールだけ

ビジネスロジックを除いた計算コアだけを送ることもできます。切り出し方はドキュメントで説明しています。

最適化バイナリと測定・等価性の証拠を提供し、手法は当社のノウハウとして保持します。支払い前の書面依頼により、注文専用のエスクローボックスでソースを預託できます。エスクロー附則に従い、プラットフォームと構築・引渡し手順を検証して注文に記録します。シャドーモードには再現可能な隔離状態が必要です。安全性はご自身または委託先が検証できます。

納品の仕組みとご自身で確認できること

比較

一般的な選択肢との違い

AIエージェントを自社で使うCIベンチマークサービスコンサルタントTAKT
コードの高速化ありなし(性能劣化の検出)ありあり
支払い前に結果がわかるいいえ—いいえはい(レベル0〜1)
契約による保証なしなし通常はなしあり(M1)
ベンチマークへの合わせ込み対策自己責任—担当者次第非公開入力
変更ごとの正当性証明なし(自社のテストのみ)—まれあり(独立したレビュー付き)
独自の最適化手法モデルの一般的な知識—個人の経験プロジェクトごとに拡充される、証明済み手法のライブラリ
高速化の余地がないときに正直に断るエージェントは必ず何かを変更する—場合によるはい(支払い前に)
基準ハードウェアお客様の環境ありお客様の環境あり
料金体系トークン単位ユーザー単位時間単位成果報酬
FAQ

よくいただくご質問

ソースコードではなくビルドを納品するのはなぜですか?

最適化手法は当社のノウハウです。そのため、Cヘッダと薄いRustラッパーを添えた静的または動的ライブラリとして納品します。組み込みはCargo.tomlに1行追加するだけです。正しさは等価性テストで、出所は署名と来歴情報で確認できます。

コードを変更したらどうなりますか?

Rust ライブラリの組込みと原版への切替えは納品時に合意します。最適化部分が変われば新しい版の測定が必要です。CI は別途受諾した注文で提供します。事業継続のためのソース預託は、支払い前に附則に従う検証済みボックスで依頼できます。

戦略を送る必要がありますか?

暫定的な範囲を知るだけなら不要です。無償のハーネスがソースコードなしで測定データパッケージを作ります。ビルドに必要なのは、ホットループで動くコードだけです。通常はシミュレーター、指標、ポートフォリオの状態です。コードはNDAの対象となり、他のお客様向けの作業には使わず、期限どおりに削除します。データの一部は検収までお手元に残せます。非公開入力は暗号化して送り、ビルドの完成後に鍵をお渡しいただきます。

単にコア数を増やせばよいのでは?

両方行うのが最善です。パラメータ探索の独立した実行は複数のコアにうまく分散でき、当社のビルドは追加したどのコアでもそれぞれの実行を速くします。一方、各ステップが前のステップに依存する、1本の履歴に沿った単一のシミュレーションは、コアを増やしても速くなりません。当社が高速化するのは、まさにそのようなコードです。同じ探索に必要なコア時間が減れば、クラウドの費用も下がります。

約束した高速化が実現しなかった場合はどうなりますか?

レベル1では、すでに測定済みの結果に対してお支払いいただくため、このようなことは起こりません。レベル2では最低保証値を提示し、それに届かなかった場合は契約書の表に従って代金を残高に返金します。残高のうち入金残高は、ご請求に応じて払い戻します。

行数はどのように数えますか?

お客様のコードを、測定パスポートと同じプロファイル・同じプラットフォーム向けに-C instrument-coverage付きでビルドし、公開入力でパスポートのベンチマークを実行します。llvm-covのデータで1回以上実行されたRustの行を数えます。空行とコメント、実行されなかったコード、テストとベンチマーク用の周辺コード、作業範囲外のサードパーティ依存、アセンブリは数えません。ジェネリック関数は1回だけ数えます。この数値はお支払い前にパスポートに記録されます。数えるのはお客様のコードだけで、データは含みません。参考までに、bzip2-rsでSilesiaコーパスを展開すると598行のコードが実行され、rav1eでXiphの5クリップをエンコードすると55,419行中12,809行が実行されます。

どのプラットフォームに対応していますか?

公開デモは Linux x86-64、AVX2/FMA 向けです。TA-Lib と vn.py は AMD Zen 3 と Zen 4 で測定済みです。有料ビルドの CPU 機能、OS、ABI、受入れ用ハードウェアは注文ごとに固定します。Intel、ARM、その他の環境は個別評価が必要です。

高速化しにくいのはどのようなコードですか?

長年最適化されてきたCライブラリがすでにあるフォーマットのデコーダ(LZ4、zstd、deflate)は、まだ上回れていません。ほかにも、手書きのSIMDやアセンブリを使った成熟したコーデック(x264、x265)、SHA-256やChaCha20などの暗号プリミティブ、圧縮できないランダムなデータの処理、処理時間のほとんどがオーバーヘッドで占められるごく短い呼び出しが該当します。このような場合は無料見積もりで効果が小さいことを正直にお示しし、お支払いは発生しません。

手元で測ったサイクル数がTAKTの数値と異なるのはなぜですか?

サイクル数は、CPUのモデル、周波数、ターボ、メモリ、入力データによって変わります。契約上の数値は、測定パスポートに従って測定環境で取得します。ハーネスは同じカウンタを読むため、同じCPUモデル・同じ設定であれば、お客様の数値は当社の数値に近くなるはずです。命令数はマシンへの依存がずっと小さいので、まず命令数を比べてください。

浮動小数点はどう扱いますか?

既定では、出力はビット単位で一致します。限定的な例外として、Rust が異なるペイロードを許容する場合に限り、浮動小数点演算で生じた NaN のペイロードは異なることがあります。明示的に保持された NaN の符号化やその他の出力は、測定パスポートで別段の合意がない限り厳密に一致します。測定パスポートで NaN のペイロードの完全一致を求めることもできます。その他の合意した偏差は、測定パスポートで定め、テストで確認します。

古いサーバーでビルドがクラッシュしませんか?

各パッケージの CPU 要件を確認してください。公開バイナリは AVX2/FMA が必要な場合があり、古い CPU では動作しません。有料ビルドの対応機能とフォールバックは測定条件書で合意します。すべてのバイナリにフォールバックがあるとは限りません。

ライブ取引のレイテンシーは下がりますか?

プロファイリングで計算がボトルネックだと分かった場合に限ります。ライブの経路では、関数ひとつではなく、市場イベントから注文までの経路全体を測定します(例えばお客様のサーバー上での p99)。多くの場合、時間の大半はネットワークと取引所で費やされます。当社が最も効果を出せるのはバッチ計算、つまりバックテスト、学習、パラメータ探索です。

C、C++、Python にも対応していますか?

はい、個別のご注文として対応します。C と C++ には同じ ABI の置き換えライブラリを納品するので、お客様のプログラムも、ライブラリを呼び出す Python コードも変更なしで動きます(TA-Lib の事例を参照)。Python コードには、同じ出力のネイティブなプログラムまたはモジュールを納品します(vn.py の事例を参照)。これはレベル2のエンジニアリング作業で個別見積もりです。ダッシュボードのセルフサービスは現在 Rust の crate を受け付けています。

TAKTのほかに

当社のその他のプロジェクト

同じチームが手がけるシステムソフトウェアです。起動時に暗号化されたZFSルートをアンロックする仕組み、RAIDZのインプレース再構成、Proxmox VE用のブラウザコンソール、QEMUでのThunderboltホットプラグ。各カードから概要をご覧いただけます。コードはGitHubで公開しています。 TPM 仮想マシンで秘密を条件付き保管するプロジェクトもあります。

escrow-box

TPM 搭載仮想マシンで秘密を条件付き保管する試作です。ソースコードは公開前に再ビルドで検証できます。

  • TPM 2.0
  • UKI
  • Clevis

zbm-openwrt-clevis

計測されたOpenWrtブートランタイムで、ClevisとTPMにより暗号化されたZFSルートをアンロックし、ZFSBootMenu経由でシステムを起動します。

  • OpenWrt
  • ZFS
  • TPM 2.0
  • Clevis

zfs

RAIDZのインプレース再構成のプロトタイプを含むOpenZFSのフォークです。プールをエクスポートせずに、raidz1、raidz2、raidz3の間でパリティを変更できます。

  • OpenZFS
  • RAIDZ
  • C

qsm-rd

QSM Direct:Proxmox VEの仮想マシンとLXCコンテナ向けのWebRTCグラフィカルコンソール。ノードにエンコーダーがあればハードウェアでエンコードします。

  • Proxmox VE
  • WebRTC
  • LXC

qemu-thunderbolt

QEMU向けのThunderbolt風PCIeホットプラグ層。macOSのように直接ホットプラグできないゲストで、デバイスの追加と取り外しを可能にします。

  • QEMU
  • Thunderbolt
  • PCIe
  • macOS
お申し込み

一つの処理を評価する

Rust crate ですか?今すぐダッシュボードを開く。C、C++、Python の場合は、遅い実行の時間、頻度、プラットフォームを以下に記載してください。この段階ではコードも測定ツールのインストールも不要です。

この段階ではコードは不要です。送信により、連絡先情報の取り扱いに同意したものとみなされます。