Speed up your Software

フィックスターズのソフトウェア高速化サービス

ソフトウェア高速化の世界

不可能を可能にするソフトウェア高速化

  • Until the early 2000s

    不自由の無い、ソフトウェア性能向上をもたらした「ハードウェア高性能化時代」

  • The first half of the 2000s

    しかし、2000年頃、単純な微細化では“デナードスケーリング”が成り立たなくなることがわかり始めます。微細化によって周波数を向上し続けてきたことで、発熱の問題が無視できなくなったのです。これにより半導体メーカーは性能向上の手段として、素子の動作速度向上ではなく、微細化によって増やせる「素子そのものの使い方」をより工夫することを余儀なくされます。つまり、時間的な速度追求が難しくなり、空間的な速度追求のみが許される状況に陥ったということです。

  • The second half of the 2000s

    ハードウェア高性能時代の終焉、そしてソフトウェア高性能時代へ―――

    マルチコアプロセッサ

    そこで始めに半導体メーカーがとった手段は単純に計算ユニットを複数並べることでした。それまで1つだけであった計算ユニット(コア)を微細化で広がった空間に複数搭載することで、同時に複数のソフトウェアを実行可能にしたのです。

    これがいわゆる“マルチコアプロセッサ”ですが、マルチコアによる性能向上の恩恵を得るためには、エンジニアがソフトウェア中の処理を分割し、複数のコアに処理を振り分けるプログラムを記述する必要があります。逆にエンジニアがマルチコアを使わないソフトウェアしか書けなければ、複数存在するコアは使用されず、本来ハードウェアが持っている性能は発揮されないということです。

  • Now

    こうして2000年代後半頃、IT業界は「ソフトウェア高性能化時代」へ突入しました。エンジニアがマルチコアを意識してソフトウェアをプログラミングしなければ、大きな性能向上は見込めない時代です。そして現在、ハードウェアの空間的速度向上はムーアの法則によりさらに進化を遂げています。メニーコアプロセッサ、GPU、FPGAなどの様々なハードウェアが従来よりも実用的な領域まで進歩し、その活用範囲を広げています。私たちソフトウェアエンジニアは、このような新たなハードウェアを手に入れた一方で、より一層ソフトウェアによる高性能化が求められる状況に直面しています。

    最新のハードウェアアーキテクチャ
  • To the future
    量子コンピュータ

    さらに長期的にはムーアの法則による素子の増加も終焉を迎えると考えられています。ポストムーア時代では、空間的な速度向上も限界を迎えますので、より速度を求める場合は汎用的なプロセッサではなく特定の処理に特化した専用プロセッサや、これまでのプロセッサとは全く違うコンピュータを開発することになるでしょう。これは近年急速に発展したディープラーニング向けのハードウェアや、量子コンピュータといったハードウェアに代表されます。こうした近年の状況は、現在よりも専用ハードウェアを使いこなさなければならないソフトウエア開発の未来が来る可能性を示唆していると言えるでしょう。

パフォーマンスオリエンテッドな提案力

高速化とは、いかに無駄を見つけ、無駄を取り除くかという作業です。「無駄を廃し、ターゲットとなるハードウェアの性能を出し切る」ということはもちろんですが、ターゲットとなるハードウェアの性能と、目標となる性能のギャップによっては、アルゴリズム自体の無駄を取り除く必要があるかもしれません。しかしなにが無駄なのかは、製品の仕様や要件によっても変わってくるため、難しい問題でもあります。

フィックスターズでは、より一層の高速化を求めるお客様に対し、アルゴリズムの軽量化、改良、再検討や委託開発もご提案しております。 第三者視点で仕様や要件を精査することで、思わぬ高速化の道が見えてくることもあり、これまで不可能だと考えていた性能向上が実現可能となることもあります。また、ソフトウェアの高速化と合わせて、ハードウェアの選定やシステム全体のセットアップといった幅広いご提案も行っております。

トータルコストの削減

実際の高速化作業において、エンジニアは高速化の余地を見つけ、高速化手法を選択し、選択した手法を適用しなければなりませんが、そのためには、高速化の余地を見つけるための学習や高速化手法そのものの学習を行う必要があります。これには、対象となるハードウェアの知識や使用するプログラミング言語、コンパイラ、ライブラリなどの性能に関わる知識、使用するアルゴリズムの知識など様々な要素が含まれます。こうした学習は開発する環境が変われば新たに学習する必要があり時間的なコストも大きくなりがちです。

フィックスターズでは、エンジニアたちが日々こうした知識を業務などを通して蓄えており、高速化効率の高い開発を実現できます。結果として開発期間が短縮され、人件費だけで無く、教育費用の削減や早期製品投入などが可能となります。また、お客様は空いた時間を使うことで、より製品開発として本質的な部分に時間を費やすことが可能となります。

最新技術への対応力

アルゴリズム

最新の機械学習・深層学習アルゴリズムや、画像処理、画像認識アルゴリズムなど、必要に応じて論文調査等を行うことで、日々進化するアルゴリズムに対応していきます。また、お客様独自のアルゴリズム等にも対応可能です。

ハードウェア

最新世代のCPUやGPUへの対応はもちろんですが、2017年より他社に先駆けて量子コンピュータもハードウェアの一つとして取り扱っています。今後も新しいアーキテクチャや新しいパラダイムのハードウェア、お客様独自のハードウェアなど、様々なハードウェアをサポートしていきたいと考えています。

テーラーメイド

ソフトウェアの高速化は実に多様な問題・課題の組合せから成り立っています。フィックスターズでは、お客様専任のエンジニアが直接ヒアリングを行い、高速化を実現するために乗り越えるべき課題や問題を明確にしていきます。エンジニアは可能な限り最良なプラン模索し、お客様に適したソリューションを提供します。

またこれまで、自動車、映像、医療、産業、モバイル、金融、ビックデータなどの様々な分野で、CPU、GPU、FPGA、DSP、PLCなどの様々なタイプの、そして大規模クラスタからSoCまで様々な規模のハードウェアに対して高速化を行ってきた実績があります。今後もこれらに限らず幅広い問題・課題を対象として引き続きソフトウエア高速化サービスを提供していきます。

サービスリスト

ソフトウェア最適化

お客様のご要望(要求仕様)に沿って、既存のソフトウェアをターゲットハードウェア上に移植し、最適化を行います。

システム評価

お客様の想定するシステム構成をソフトウェア開発(処理性能、開発のしやすさ等)の視点で調査いたします。

アルゴリズム開発

お客様のご用意したアルゴリズムを想定するシステム構成に合わせ最適化します。また、アルゴリズムの開発そのものもご支援いたします。

先行開発支援

先行開発段階でのソフトウェアの機能実装や性能評価、想定するシステム構成での性能見積等やソフトウェア開発を支援します。

ソフトウェア性能評価

お客様のソフトウェアが、ハードウェア性能を十分に活かしているかどうかを調査いたします。問題点の洗い出しや今後の改善案についてもご報告させて頂きます。

技術サポート

この他にも、リサーチから製品開発まで幅広いフェーズで、お客様を支援しています。

対象分野

様々な産業分野で、お客様の製品に最適な高速化ソリューションを提供しています。

自動車

詳しく見る

フラッシュストレージ

詳しく見る

産業機器

詳しく見る

ヘルスケア

詳しく見る

関連ソリューション

ソフトウェア高速化に役立つ様々なソリューションを提供しています。

OpenCL FPGA Cards

OpenCL(Open Compute Language)を用いてデザインすることが可能なFPGAを搭載したアクセラレータボードの販売・サポートを行っています。

量子コンピューティング

並列処理技術や様々なアクセラレータの特性を活かした最適化技術と、圧倒的な性能を示す量子コンピュータを組み合わせ、新たな高速化ソリューションを提供します。

詳しくはこちら

Halide to FPGA

Time to Marketを1/10以下に短縮することが可能な「Halide」によるFPGA向けIPコアを提供しています。「Halide」のサンプルコードも多数公開しています。

詳しくはこちら

M 3 for Batch Processing

業務システムのバッチ処理などを効率良く開発・運用するための「Asakusa Framework TM」の実行基盤で、DAGの形で表現されたタスクを高速処理するためのフレームワークを提供しています。

M 3 for Windows HPCクラスタ

金融機関がWindows HPC Server 2008 R2 をクラスタシステムのOS/ミドルウェアとして利用するために必要な機能を提供するフレームワークを提供しています。

Fixstars  Corporation

Social Links