事業紹介

フラッシュメモリ制御
ソフトウェア開発

どんなプロジェクトですか?
フラッシュメモリ制御ソフトウェア開発

NANDフラッシュメモリを搭載したストレージ製品開発を行うプロジェクトで、具体的にはNVMe(Non-Volatile Memory Express)規格に準拠したSSDの開発を行っています。

NANDフラッシュメモリは構造上、データの書き込み・読み出し・消去処理において特有の制約があります。そういった制約を加味した上で、NVMe-SSD製品としての高速なデータアクセス、データ信頼性の担保、製品寿命の担保といった様々な機能・要件を実現するためのソフトウェアを開発しています。

またNVMe規格のSSDは従来のSATA規格の製品と比較して大きな性能向上の可能性を秘めており、今まさに世界のストレージベンダー各社がしのぎを削っている分野です。我々も最新技術の3D NANDフラッシュと高いソフトウェア設計技術を駆使し、日々世界と競争しています。

このプロジェクトに参加した感想を教えてください。

世界との厳しい開発競争のなかで、我々のソフトウェアも進化し続けなければなりません。ときには複雑で技術的に高難度な制御が必要になることもありますが、開発メンバはみな技術的な好奇心が強く、新機能の検討や高速化アルゴリズムの検討に意欲的に取り組んでいます。難しいからこそやりがいが感じられるプロジェクトだと思います。

プロジェクトのやりがいは何ですか?

プロジェクトメンバと共に難しい課題をクリアし、開発した製品が世の中にリリースされ、皆で喜びを分かち合えるということが大きなモチベーションになっています。また、開発現場では技術的な議論や情報共有・改善提案が活発に行われており、エンジニアとして日々成長を実感できるという点もこのプロジェクトの魅力の一つです。

役立つスキル、知識
  • C、C++のプログラミング経験
  • 組み込みソフトウェア開発経験
  • コンピュータ・アーキテクチャの基礎知識
  • ストレージデバイスの基礎知識

組込み向け画像認識
ソフトウェア開発

どんなプロジェクトですか?
組込み向け画像認識ソフトウェア開発

組込み機器に対して、画像処理技術・画像認識技術を用いて、物体認識等の各種機能を搭載するプロジェクトです。

仕事の内容としては、お客様から受領したリファレンスコードを組込み向けのプロセッサに移植し、リアルタイム処理が可能なレベルまで高速化を行います。低消費電力・低クロック・小メモリで動作する組込み向けプロセッサ上で高度な画像認識処理をリアルタイムで動かすためには、プロセッサの特性を理解した高度な最適化が要求されます。

リファレンスコードの移植・最適化の他に、アルゴリズムまで踏み込んだ高速化の提案も行っています。入出力が一致する状態でより高速なアルゴリズムへ置き換えをしたり、ときには処理速度を優先して多少性能が低下してもより高速に動作するアルゴリズムの提案を行うこともあります。

また、お客様の求める機能を実現する画像認識アルゴリズム自体の開発を担当することもあります。論文調査の結果からプロトタイプの作成と精度検証を繰り返すことで性能向上を実現し、さらに組込み向けのプロセッサへの実装と最適化を行うという、製品化までのすべての工程に携わります。

このプロジェクトに参加した感想を教えてください。

プロジェクトのメンバーは様々なバックグラウンドを持った方が在籍しています。自分一人で考えて解決できないような課題でも、周りのメンバーに相談することで思わぬ方向から解決策が浮かんできたりしてとても助かりますし、もっと勉強しようという刺激にもなります。
また、お客様から指示されたことをただこなすような一方的な関係ではなく、こちらからも性能改善につながるような様々な提案を行うことで、共にプロダクトをつくっているという意識が持てるようになります。このような提案型の活動ができるのも、本プロジェクトの魅力だと思います。

プロジェクトのやりがいは何ですか?

組込み向けプロセッサは低消費電力を実現するために性能が抑えられており、そのような環境で目標となる処理性能を達成できた時は、プロセッサを使いこなしたという大きな達成感が得られます。その過程で様々な最適化のテクニックやプロセッサに関する知識が身につくので、自身のスキルアップに繋がる点も励みになります。
また、自身の提案がお客様に受け入れられて開発計画に反映されると、お客様の活動に貢献できたという気持ちになりやりがいを感じます。

役立つスキル、知識
  • C、C++のプログラミング経験
  • 組み込みソフトウェア開発経験
  • 画像処理、画像認識アルゴリズムに関する知識
  • 論文を読み解いてアルゴリズムを実装するスキル

FA機器向け
リアルタイムシステム開発

どんなプロジェクトですか?
FA機器向けリアルタイムシステム開発

FAはFactory Automationの略で、工場にあるモーターやロボットを自動で制御するシステムを指します。 FAは工場内で生産効率や品質、工場内で作業する人の安全性をの向上といった大切な役割を担っているため、搭載するソフトウェアには、高い信頼性や実時間性が求められます。 プロジェクトでは、FAで用いる制御機器の高性能化に向けた技術調査や開発を行っています。

このプロジェクトに参加した感想を教えてください。

FA機器向けのソフトウェアに求められる特性の代表的なものとして、実時間性が挙げられます。 複数のロボットやモーターが協力して製品を組み立てるには、高い精度でタイミングを合わせて動作する必要があります。 また、工場で働く人と、ロボット等がぶつかるような事故を避けるための緊急停止といった制御も必要となります。 一方で、一般的に工場には多くの機器が配備されるため、一つの機器に多くのコストをかけることはできず、高性能なハードウェアを採用することはできません。 このような制約の中で、ソフトウェアの力で求められる実時間性を満たすのが、プロジェクトの最大の難関であり、また面白いところでもあります。 また、機器の数を減らすため、また実時間性や信頼性を向上させるために、FA機器ではEthernet上で特殊なプロトコルを用いることがあります。 Ethernet上でTCP/IPと関連しないプロトコルが動作する環境に普段触れることがないので、非常に興味深いものがあります。

プロジェクトのやりがいは何ですか?

開発したソフトウェアは、お客様である国内大手メーカーのFA製品に採用され、世界中に出荷される予定です。 したがって、プロジェクトの成果は、製品の性能やお客様の収益はもちろん、世界中の工場の生産性・安全性にまで直結することになります。 そんなプロジェクトでの仕事は、大きな責任を感じさせられますが、その分やりがいも大きいものになります。

役立つスキル、知識
  • RTOSの知識
  • Ethernetの知識
  • CPUやOSの仕様書を読む力

AI関連アルゴリズムの
並列化プログラム開発

どんなプロジェクトですか?
AI関連アルゴリズムの並列化プログラム開発

ここでいうAI(人工知能)とは、コンピュータ上で人工的に作り上げた人間の知能に近い振る舞いを有する実装のことを意味していて、そのための一連の機械学習技術を指しています。

AIとそれに関わる機械学習技術の利用範囲は広範で、インターネット検索などのIT分野だけに留まらず、医療・生命科学、金融市場、自動車産業などの様々な領域に浸透しており、今後はあらゆる場面で活用される技術として注目されています。

しかし、対象となるデータセットの多くは巨大であり、そのため結果を得るまでに非常に時間がかかったり、また、ディープラーニングに代表される高度な機械学習アルゴリズムでは膨大な計算時間が必要になるなどの問題があります。

そこで私たちは、これらの問題に対しマルチコア・GPGPU・PCクラスタなどの並列化技術によって解決する手段を提供しています。

このプロジェクトに参加した感想を教えてください。

AI技術を利用するには、機械学習、パターン認識、統計学などの手法を用いたデータ解析を行う必要があり、数学的知識が要求されます。また、最新の技術をキャッチアップするために、数多くの論文を読んで理解する必要もあります。さらに、それらのアルゴリズムをコードに落とし込んだり、効率的な並列処理を行うテクニックが要求されます。様々な技術を組み合わせて開発する必要があるので、総合的な能力が要求されますが、とてもチャレンジングであり、世の中に大きく貢献できる結果を作り出すことができます。

また、ICPC、TopCoder、AtCoder、ICFPCなどの競技プログラミングの経験はアルゴリズムに対する理解や正確で効率のよいコードを書くための基礎になることから、AI技術に対してはとても有用だと考えています。実際に自分自身も競技プログラミングで得た知識は開発でとても役立っていて、開発現場で何度も助けられています。

* フィックスターズではプログラミングコンテストへの参加を応援しています!有志による社内コンテストも毎年行われています。詳細は こちら をご参照ください。

プロジェクトのやりがいは何ですか?

アルゴリズム、数学的知識、プログラミング技術、並列化ノウハウなど、様々な最新の技術を組み合わせ、新たな価値をもたらす結果を作り出せることです。アルゴリズムやプログラミングに強い興味を持ち、最新のテクノロジーを駆使した開発を行いたい方には、とてもやりがいのある仕事です。

役立つスキル、知識
  • 計算アルゴリズムや計算機科学に関する知識
  • 機械学習関連技術
  • 並列化プログラミング技術 (マルチスレッド・GPGPU・MPIなどの利用)

HPCシステム上の
ソフトウェア高速化

どんなプロジェクトですか?
HPCシステム上のソフトウェア高速化

高性能計算機(HPC)システムとは、普段多くの人が使っていて目にしているパソコンの大型版で、スパコンなどが代表例です。

HPCシステムでは、通常のパソコンレベルでの高速化技術は当たり前であり、さらにそのシステム全体(そのシステム特有のチップであったり、ネットワーク構成など)を考慮した高速化が求められます。また、単にそのシステムに最適な実装にするだけでなく、システムに合わせたアルゴリズムの選択あるいはアルゴリズムの新規開発が必要になります。応用分野は多岐に渡るので、広い(そしてもちろん深い)背景知識も必要とされます。

このような困難な課題が多いプロジェクトですが、その成果は幅広い分野にまで及びます。また、HPCシステムは一般に世界最先端のシステムなので、その成果によって、将来のコンピュータの発展に大きく寄与できる仕事です。

* 2016年11月には、アメリカのソルトレイクシティで開催された世界最大規模のHPCシステムに関するカンファレンスSC16のワークショップで、論文発表をしてきました。詳細は こちら をご参照ください。

このプロジェクトに参加した感想を教えてください。

「とても面白かったし、達成感も大きかった」これに尽きます。世界最高峰の研究者の方々と共同で仕事ができて学ぶことも多かったですし、自分の名前が載った成果として対外発表できたのはとても嬉しかったですし、やりがいを感じました。HPC世界は今後もますます盛り上がる分野なので、その分野に携わっていけることはとても誇らしいですし、もっと更なる困難に挑戦してみたいと思えました。

プロジェクトのやりがいは何ですか?

先に述べたように、このプロジェクトでは実現するために必要なソフトウェアアルゴリズム・ハードウェア特性の最先端の知識および実装技能の水準が高いですが、それらを駆使して困難な問題を解決した時の達成感は確実にあります。また、あまり普通の環境では触れることのできない大型計算機を極限まで使っているという大規模感もやりがいのひとつです。そしてもっともやりがいを感じる部分は、自分の成果を直接目に見える形で公表できるという点です。

役立つスキル、知識
  • 学術論文を読み書きするスキル
  • 計算機ハードウェアの特性を把握し、計算機の最大性能を引き出す方法を見抜くスキル
  • 並列計算に関する基礎知識
  • 既存の計算機アーキテクチャに関する基礎知識

自社ストレージ製品の
FPGA/ソフトウェア開発

どんなプロジェクトですか?
自社ストレージ製品のFPGA/ソフトウェア開発

フィックスターズの自社製品であるフォグコンピューティング向けサーバー “Olive” を開発するプロジェクトです。

無数のIoTデバイスが存在する工場などでデータを収集・分析・加工するフォグコンピューティングには、小型かつ大容量かつ低消費電力という厳しい要件がサーバーに求められます。 “Olive” は2.5inchフォームファクターという小型筐体の中に、TBクラスの大容量SSDと、使いやすい標準的なLinuxを詰め込み、上記の厳しい要件を満たした今までにないサーバーです。本プロジェクトではその制御システムの開発や、お客様の要望に合わせた新規機能の開発をしています。

制御エンジンにはARMプロセッサを搭載したSoC FPGAを採用しているため、Linux上で既存のソフトウェアを動かしたり、ハードウェア化してFPGAで高速に処理したりと、自由度の高い開発を行うことが出来ます。性能・電力・工数といった様々な要素を考慮し、最適な実現手段を模索しながら開発してゆきます。

* Oliveはその特性を活かし、様々な用途で需要が見込まれています。詳細は こちら をご参照ください。

このプロジェクトに参加した感想を教えてください。

本プロジェクトは大企業の製品開発と比べて少人数で行われており、とてもスピーディーに開発が進みます。社長からエンジニアまで全員の意見が週ごと日ごとに反映され、皆が最も良いと思う方向に最速で進もうという意思を持って取り組んでいると感じています。もちろん少人数であるからには一人ひとりが幅広く様々な知識を持つ必要があり、自分の能力不足に嘆くことも多いのですが、課題をクリアするたびに着実に自分の成長を感じられるプロジェクトだと思います。

プロジェクトのやりがいは何ですか?

マーケティングや仕様検討、技術研究、開発・テストといった一連の製品開発プロセス全てに関わって多彩な経験を積むことが出来ることです。そのように深く関わった製品が世界中のお客様に使われる可能性があるということもやりがいの一つです。また、最先端の要求を満たすために、必然的に最先端のハードウェアの採用を検討することになります。最新のFPGAやBGA SSDなどにも触れることができ、エンジニアとしての好奇心が満たされます。

役立つスキル、知識
  • Cのプログラミング経験
  • 組み込みソフトウェア開発経験
  • FPGAを用いたハードウェア開発経験

医療画像処理
アプリケーション開発

どんなプロジェクトですか?

CT、MRIなどの医療分野における画像処理は、機器の高性能化に伴い膨大なデータ処理が必要になっており、従来用いられてきた専用演算器では処理を行うのが難しくなっています。 画像データ処理は一般的に並列処理に向いているため、Cell/B.E.の持つ高速な浮動小数点演算能力を生かすことで、短時間で大量の画像を処理することができます。 この様な性能を持つCell/B.E.を医療分野に用いると、専用演算器では難しかった高度な画像処理を行うことが可能になります。

このプロジェクトでは、Cell/B.E.を用いた医療機器の高性能化を実現することで、社会に貢献することを目標としています。

このプロジェクトに参加した感想を教えてください。

医療機器向けの画像処理ソフトウェアには高い品質が求められます。そのため様々なテストを繰り返すことで、品質を確保していく作業が必要になります。 例えば想定される入力パターンを総当たりでテストし、出力画像が正しいものであることを確かめたり、出力画像に生じた誤差がどこで発生しているかを追究したりなど、 非常に時間が掛かりまた苦労する面もありますが、品質向上には欠かす事ができない作業です。

医療画像処理の中で画像をリアルタイムに処理する必要があるものは特に、Cell/B.E.向け最適化の効果が大きく現れます。 エンジニアとしては挑戦しがいがあり、効果が目に見えて表れるので楽しい仕事です。

プロジェクトのやりがいは何ですか?

このプロジェクトでは、計算アルゴリズムの理論値を見積もって最適化の目標としています。 1計算サイクルも無駄にしないでほぼ理論値通りに最適化できた時には、自分の仕事に自信を持つことができました。 プロジェクトのメンバーには、画像処理を大学で専門的に研究してきた人や、計算機科学に詳しい人、 プログラマとして高い専門性を持って仕事をしてきた人など様々な人材が、集まってそれぞれの専門性を生かして仕事をしています。

このプロジェクトでは自分の関わった医療機器が製品として世に出ることに、大きな責任とやりがいを感じることができます。

役立つスキル、知識
  • 計算アルゴリズムに関する知識
  • 画像処理の研究開発
  • 計算機科学の深い知識

金融デリバティブシステム開発

どんなプロジェクトですか?

金融機関で取り扱う金融商品全般のプライシングとリスク評価システムを開発しています。

当初演算量多めのデリバティブ商品を中心に扱っていましたが、最近は演算量少なめでデータ量が多いタイプの商品も対象にしています。XeonPhiやグリッド化による演算部分の高速化実装のみならず、同システムのユーザインタフェースの設計開発、他システムとの連携を考慮したDB設計、運用サポートツールの開発など守備範囲は多岐にわたっており、仕様策定から設計、開発、運用まで含めたサービスを提供しています。

開発スピードという意味でもより迅速にサービスインできるよう、システム全体を見渡した高速化に努めています。

* 当社の金融デリバティブシステム開発プロジェクトの一例として、XeonPhiを利用してデリバティブ評価システムを30倍高速化した案件があげられます。詳細は こちら をご参照ください。

このプロジェクトに参加した感想を教えてください。

最先端の金融工学をシステムへ落としこみ日々金融業務としてまわせるようにすることで、金融商品開発と製造の一翼をになっているんだなぁと感慨にふけっています。

システム全体を高速化することで、プライシングできる量を増やすことができる=商品取扱量を増やすことができるというところが面白いところです。

プロジェクトのやりがいは何ですか?

演算スピードだけではなく、開発スピードも求められており、要求をクリアした際の達成感とお客様の「さすが!」という声がやりがいです。

役立つスキル、知識
  • C/C++アプリケーション開発経験(必須)
  • Linux上での開発経験
  • VisualStudioでのアプリケーション開発経験
  • DBの知識、SQL高速化経験
  • Excelマクロ、アドインの開発経験
  • マルチスレッド、ソケット通信、分散アプリケーションの開発経験
  • Webの知識
  • ファイナンスの知識やお金に興味があること