転職・求人DODAエンジニア IT/トップ > 転職情報・成功ガイド > ギークアカデミー > ハードとソフトの技術が交わり、niconico専用ハードウェアが活躍する日 株式会社ドワンゴ 小嶋尚 氏、草野一彦 氏

GEEK ACADEMY 先端を走る技を、ギークに学ぶ

掲載日:2015.6.11
このエントリーをはてなブックマークに追加

ハードとソフトの技術が交わり、niconico専用ハードウェアが活躍する日

株式会社ドワンゴ プラットフォーム事業本部 コンテンツ配信基盤開発部 コアデバイス開発セクション セクションマネージャ 小嶋尚 氏 プラットフォーム事業本部 コンテンツ配信基盤開発部 コアデバイス開発セクション 草野一彦 氏


ハードウェアとアルゴリズムの開発チームの活動から、ドワンゴ独自の専用ハードウェアが生まれようとしている。ソフトウェアエンジニアがハードウェアを設計することも可能な時代になってきたことが背景にはある。ハードウェアの知識を持ったソフトウェアエンジニアの価値は高まるだろう。

動画の圧縮がデータセンターの資源を大量に消費する

──開発を進めている専用ハードウェアや、独自アルゴリズムを組み込んだコーデックについて、どのような特徴があるのか教えてください。
清水 ではまず既存のコーデックと、うちで開発しているコーデックはどう違うのかっていうところから説明お願いします。
小嶋 コーデックというと、みなさんH.264とかH.265とかMPEG2といった名前は知っていると思いますが、それらはデコード(圧縮した動画の伸張)の規格で、そこでは差は出ません。画質で差が出るのはエンコード(圧縮)のアルゴリズムです。同じ規格のコーデックでも各社ごとに特徴があって、例えば家電メーカーS社とP社で絵が違います。家電業界では大画面の機器向けに高解像度の動画を高画質化する方向を追い続けていますが、ドワンゴではネットワークでの動画配信がメインです。そこでコーデックの設計でも考え方が変わってきます。
──つまり容量を小さくする、ということですよね。
小嶋 そのため、すでに存在するコーデックを持ってきてそれでよし、というわけにはいきません。エンコードの速さ、計算リソースの両方を考える必要があります。計算リソースを投入すればいろいろなことができるけど、リアルタイム性がなくなってしまう場合もあります。
──専用のハードウェアが必要になる理由は?
小嶋 コーデックは、実は今の汎用CPUで使われているノイマン型アーキテクチャのコンピュータには向かない部分があります。メモリからCPU内部のレジスタにデータを転送してから処理する作りなので、メモリバスがボトルネックになりやすい。動画圧縮はデータの全部を処理しなければいけないので、データの中で利用頻度の多い一部だけをキャッシュメモリに入れて高速化するテクニックも効かない。
──ドワンゴのデータセンターの消費電力ベースで見た負荷の半分がエンコーディングだという話を聞きました。
小嶋 計算リソース全体に占めるエンコード処理の割合は非常に大きいんです。だから、効率が良いやり方に変えていったほうがいい。
最近はIntelプロセッサのクロック周波数が上がっていないので、ピーク性能が頭打ちになってます。そこでソフトウェアコーデックの分野では並列化への取り組みが進んでいます。一方、専用ハードウェアによるコーデックでは、より細かな並列化をする方向に向かっています。
──そうなると、ソフトウェアコーデックを書いている人はいらなくなるのか、という疑問が出てくるわけですが、そこはどうですか?
小嶋 柔軟性の段階が違うので、ハードウェアにもソフトウェアにもそれぞれの役割があります。メタルで結線済みのハードウェアは特定の処理しかできません。FPGA(field-programmable gate array)であれば後から回路を手直しできますが、ソフトウェアの場合ほど小刻みに直せるわけではありません。ソフトウェアはより多様なニーズに対応できます。多種多様なコーデックに対応しないといけない場合はソフトウェア処理が向いています。
谷内 例えば、エンコーダでは遅延と画質の間に関係があります。低遅延を狙うと画質が落ちてしまいますが、「ニコニコ生放送」のようにリアルタイムな双方向コミュニケーションを狙う場合は低遅延が大事です。そこでパラメータを変えて試行錯誤をしたいのですが、ハードウェアだとそこの柔軟性がない。こういった形でソフトウェアコーデックの需要は常にあります。
小嶋 草野さんに開発してもらっているアルゴリズムは、ソフトウェアコーデックのためのアルゴリズムもあるし、ハードウェアのためのアルゴリズム開発をお願いする場合もあります。
ただし、ハードウェアには特性があるので、ソフトウェアだけで処理する場合とは考え方を変えないといけません。高画質化のアルゴリズムをソフト屋さんが考えると動画1フレーム分の遅延を前提に考えてしまう場合が多いのですが、現実には1フレーム分を格納するフレームバッファ単位ではなく、もっと細かくラインバッファまで分解して考えないといけません。

ドワンゴ専用ハードウェアが登場する日

──ドワンゴのサービス専用のハードウェアをボードに起こしてラックに入れて、データセンターに配置する可能性があるのでしょうか。
小嶋 そうなると思います。ある程度の数量が出るなら、専用ハードウェアのボードを発注して作ってもらうことは可能です。ドワンゴのデータセンターの規模があれば、専用ボードを作る可能性は十分にあると考えています。
──それはワクワクする話ですね。
小嶋 そうですね。考えてモノを作るのは楽しいですし、そういうのは好きです。変な言い方ですけど、前例がない物事を考えられる人は少ないらしくて。僕の経歴はそういう分野ばっかりでした。新しいモノを考えて、市場を作れる仕事は、面白いと思います。
例えばFPGAに注目が集まっているように、ハードウェア設計の敷居は以前よりも格段に下がっています。規模が大きな回路もある程度自由に作れるようになりました。
最近はC言語などでハードウェアを記述して大規模集積回路を設計する高位合成も使えますので、ソフトウェアエンジニアがハードウェアを設計することも十分に視野に入ってきます。
草野 でも、素直にCで書いても性能が出ないんですよね。ハードウェアを知らないと。
小嶋 ハードウェアを知ってソフトウェアを書くのと、純粋にソフトウェアを書くのとは違います。ただ、他の分野のソフトウェアでもカリカリにチューニングを施していくと下位レイヤーを意識するようになってきますから、そのあたりの事情は実は一緒です。
谷内 ソフトウェアコーデックでも、アセンブラで(1命令で複数データへの処理を実行する)SIMD命令を使ったりしています。ハードウェアに合わせてチューニングするのは、この分野では当たり前になっています。
小嶋 さらに重要なのはアルゴリズムです。ハードウェアに合わせたチューニングで得られるのはせいぜい一桁の性能向上ですが、良いアルゴリズムを使えば100倍といったオーダーで高速化するので。
清水 なので、アルゴリズムが書ける人はもっと必要です。

ソフトウェアエンジニアにとっても、ハードウェアの知識は刺激に

──ハードウェアへの取り組みが、ドワンゴの他のソフトウェアエンジニアへの刺激になっているということはありますか。
谷内 考え方が変わってきています。サービスの規模が大きくなるに従って、インフラがどう動いているかを意識しないと、モノが作れなくなっています。プロセッサコアが何個あるからそれに対応してインスタンスを分けよう、といった設計が必要になってくる。そういう観点で、ソフトウェアエンジニアがハードウェアの話から刺激を受けることは大事です。
社内の勉強会でも、唐突に高位合成の話が出てきたり、技術的な交流が起こっています。C言語の話は、Webエンジニアから見ると下の下のレイヤーですから新鮮です。
小嶋 C言語は(ハードウェア設計の世界では)超高級言語ですよ(笑)。僕らのメンバーも、「ハードを開発するよ」といったら、自主的にHDL(ハードウェア記述言語)とかの勉強を始めちゃって。FPGAの開発キットも、一番安い奴だと3万円ぐらいで入手できますし。ソフトウェアエンジニアの人でも、できる人はすぐにやっちゃう。
あと、私たちのハードウェアエンジニアはバックグラウンドが全員違うんです。CPUを作っていた人、高速メモリインタフェースの人、コーデックの人など、全員違う経験を持ったエンジニアが集まっています。そこで異なる技術の交流が起こっています。
谷内 他の会社から見ると、動きが速いと思います。社内LT(ライトニングトーク)で「こんなものを作った」という話題をみんな持ち寄ってきます。
小嶋 今ちょっと見てみると……(社内チャットツール)SlackのFPGAの部屋には結構大勢参加してますね。
清水 Golangの部屋やErlangの部屋と同じぐらいで、Javaの部屋よりずっと多いですね。
──エンコーダ以外の分野でも専用ハードウェアを作る可能性はありますか?
清水 当然、ありえます。エンコーダのハードウェア開発が終わったら、じゃあそのために採用した人材は不要になって切り捨てるのか、というともちろんそんなわけはなく、コーデックアルゴリズムの改善や新しい規格への対応などはずっと続いていきますし、さらに他の分野の専用ハードウェア化ももちろん考えられます。例えば機械学習周りとか。
──多層ニューラルネットワークも、ノイマン型アーキテクチャとの相性は良くなさそうですね。
清水 (多層ニューラルネットワークを使う)ディープラーニングのような機械学習の方面でも、ハードウェアやアルゴリズムの専門家の出番はあると思います。
私たちの会社は、安定を求めている人には向かないと思いますが、失敗しても責めるというより、チャレンジしたことを評価します。

ワクワクできるものを作りたい! ハードウェア技術者、プロコン出身者がniconicoの会社に来た理由:前のインタビューを読む

「ギークアカデミー」バックナンバーはこちら

ココが今回のギークの学びどころ

  • ワクワクできるモノを作りたい! コーデックや機械学習など、まだ誰も作っていないモノを作るチャンスがある。
  • ハードとソフトの敷居は低くなっている。ハードの知識を持つソフトウェア開発者が求められるようになる。
  • 「そこに問題があったから」解く。問題を解くことに純粋な情熱を傾けられる人材の価値が高まる。

今回のギークが活躍する現場は「株式会社ドワンゴ」
エンジニア求人一覧は以下よりご確認いただけます。

エンジニア求人を見る

DODAエージェントサービス 専任のキャリアアドバイザーが、キャリアアドバイスから求人紹介、退職フォローまでを一貫してサポートします。ご利用になりたい方は、こちらからご登録をお願いします。はじめて退職する方のために3分でわかるエージェントサービスのメリットを紹介 エージェントサービスに申し込む(無料) 3分でわかるエージェントサービスのメリット

無料エージェントサービスに申し込む

IT業界に精通した専任のキャリアアドバイザーが、エンジニアの転職活動を無料でバックアップします。

イベント情報

転職のプロに相談できる DODAエンジニア個別相談会

おすすめ診断コンテンツ

ITエンジニア・クリエイター合格診断

あなたの“本当の年収”や今後の“年収推移”も分かる!年収査定サービス[無料]

インタビュー、コラム

アプリケーションエンジニアのための転職力アップ法

アプリケーションエンジニアのための転職力アップ法

エンジニア特有の転職成功ノウハウや市場動向をご紹介

インフラエンジニアのための転職力アップ法

インフラエンジニアのための転職力アップ法

インフラ領域特有の転職成功ノウハウや市場動向をご紹介

業界専任キャリアアドバイザーの連載コラム Webクリエイターのための転職力アップ法

Webクリエイターのための転職力アップ法

クリエイター転職特有のノウハウ・事例などご紹介!

未来を創る 意志あるエンジニアたち

未来を創る 意志あるエンジニアたち

最前線で活躍するエンジニアのこだわりに迫る

GEEK ACADEMY

GEEK ACADEMY

先端を走る技術を、ギークに学ぶ

メールマガジン無料配信

簡単登録で最新の転職情報、
希望の求人が届く