NTTネットワークサービスシステム研究所

山登庸次 特別研究員「ムーアの法則」の鈍化により限界を迎えつつあるアプリケーションの高速化．ここではGPUやFPGA等，ハードウェアに応じたアプリケーションの自動変換 ･ 高速化に取り組む山登庸次特別研究員に，環境適応ソフトウェアについてお話を伺いました．
◆PROFILE：NTTネ ッ ト ワ ー ク サ ー ビ ス シ ス テ ム 研 究 所（2002年 〜2009年 ），Verio, Inc.（2009年〜2010年），NTTコミュニケーションズ株式会社 主査（2010年〜2013年），NTTソフトウェアイノベーションセンタ 研究主任及び主任研究員（2013年〜2017年），NTTネットワークサービスシステム研究所 主任研究員（2017年〜2019年），NTTネットワークサービスシステム研究所 特別研究員（2019年〜）．
2018年電気通信普及財団 第33回電気通信普及財団賞（テレコムシステム技術賞）．

手動で実施することと思います．アプリケーションの規模によっNTTのネットワーク研究―「環境適応ソフトウェア」とはてはこうした工程に数千万円を超えるコストがかかることもあるでしょうし，さらに運用に変化が生じた場合には必要に応じて追加の改造も必要となります．

◆研究されている内容を教えてください．

ソフトウェアの自動変換や最適配置が可能になれば，こうしCPUの密度が1.5年ごとに倍になるという「ムーアの法則」がた手動での作業，コスト，開発期間などが大幅に低減できるほか，鈍化し，アプリケーションの高速化が限界を迎えつつある現在，運用に変化が生じた場合には自動で再構成することも可能となる

従来のCPU（Central Processing Unit，中央演算処理装置）

でしょう．また，処理の高速化により，それまで10台必要だったに加え，GPU（Graphics Processing Unit，画像処理用演算サーバーが1台で済むようになる，といったメリットも考えられ

プ ロ セ ッ サ ）やFPGA（Field-Programmable Gate Array，ます．さまざまな環境への自動適応を図ることから，私はこれを現場で書き換え可能な集積回路）など，さまざまなハードウェア「環境適応ソフトウェア」と呼んでいます（図）．

を適材適所で使ってシステムを組むケースが増えています．

◆現在はどこまで研究が進んでいるのでしょうか．

私の研究は，ネットワークに接続されているアプリケーショ

特別研究として2019年度から 5 年計画で進めていますが，初ンをそれらの各ハードウェアに応じて自動変換し，高速化を図る

年度はGPU，FPGAへの自動変換に取り組みました．GPUではというものです．

深層学習分析，フーリエ変換，画像分析などを題材とし，数時間例えばサービス事業で数倍から十数倍のアプリケーションの高速化を達成しました．

者がCPU向けに作られまた，FPGAでは画像処理，有限インパルス応答などを題材とし，たアプリケーションを数倍から数十倍の高速化を達成しました．

GPU向けに変更して事そして 2 年目となる本年度は，前年度の成果を用いてメニー業化することを考えた

コアCPU，GPU，FPGAの混在環境への自動変換を進め，効果場合，現状ではシステを実証しました．混在環境での自動変換，高速化に関する研究例

ム開発会社に委託するは世界的に見てもかなり少ないのではないでしょうか．

ことでしょう．そして◆さらなる効率化，高速化に向けた今後の課題はなんでしょうか．

システム開発会社では，手動による開発，配置設計，性能チューニング等での高速化

専門の知識を持った技を100とした場合，自動変換による高速化は処理内容によります

術者が開発，配置設計，が10程度にとどまることもあります．手動に近づけることは課題

性能チューニング等をです．

2021.1

99

GPUでは「どの部分の処理がGPUに適しているか」「処理中で使用する変数をいつ送信するか」などを遺伝的アルゴリズムにより判断し性能を測定する，という試行錯誤を繰り返させることソフトウェア開発に第二のパラダイムシフトを起こすで高速化を実現しています．GPUへの送信頻度をより下げる検討もしています．

◆環境適応ソフトウェアが目指すものはなんでしょうか．

一方，FPGAではGPUと比較して 1 回の測定に時間がかかる

1995年に登場した「Java」は，ソフトウェアの開発現場に劇こと，アプリケーションに応じたハードウェアアルゴリズムが必的な変化を及ぼしました．仮想マシンによりハードウェアを隠ぺ要であることなどの理由から，より自動化が難しい側面がありまいすることで，異なる環境下での動作を可能としました．
「Writeす．算術強度等を用いて効率的に候補を絞り込むことや，計算内once, run anywhere」（一度プログラムを書けばどこでも動作

容に応じて展開やストリーム処理を適用する等，処理内容を使いする）というキャッチフレーズをご存じの方も多いでしょう．

分ける検討もしています．

しかし，実際には「Write once, run anywhere」の後にはまた，今後は単に変換だけではなく，リソース設定や最適配置，「But debugging and performance tuning everywhere」

運用中のソフトウェア再構成などにも取り組みたいと考えていま（とはいえデバックおよび性能チューニングは各所で必要）が続す．GPUを使った計算というと，従来は利用者がスーパーコンきます．特にGPU，FPGA等のソフト開発においては，ハードウェピュータ分野の方などに限られていましたが，そうした取り組み

アに関する知識および性能チューニングが不可欠です．

によりそれ以外の分野の方の利用も促進できるのではないかと期待しています．

それに対し，「環境適応ソフトウェア」ではハードウェアを隠ぺいするのではなく，配置先に合わせて適切な処理となるようソ

図 「環境適応ソフトウェア」により実現すること1002021.1

フトウェアを自動変換◆これからネットワークの研究に取り組みたいと思っている方へし高性能化することをメッセージがあればお願いします．

目的としています．最私は20年間の研究の中で筆頭著論文誌数が40． 1 年あたり平終的には「Write once,均 2 本の論文を書いている計算です．NTTコミュニケーション

run anywhere withズ株式会社での開発等も経験していますが，論文数の多さは私のautomatic optimum

特徴のひとつかな，とも感じています．もっとも，研究を始めた

performance config-

最初の 1 〜 2 年は論文誌に提出してもなかなか採用されません

urations」（一度プログでした．どこを直せば審査を通過できるのか等を指導者や上司にラムを書けばどこでも教わりながら，徐々に通りやすい論文を書けるようになったよう動作するとともに，最な気がしています．近年メールやリモート環境でのコミュニケー

適性能を自動構成する）

ションが増加していますが，個人的には最初の 2 〜 3 年は隣にを実現し，ソフトウェ指導者や上司がいる育成環境が良いのではないかと思います．

ア開発においてJavaに続く第二のパラダイムシフトを起こすこ

ネット越しでは指導者や上司もお説教がしづらいでしょうとを目指しています．

し（笑）
．

◆IOWN構想にはどのようにかかわっているのでしょうか．

現在は特別研究員として研究のことだけを考えられるのでとIOWN構想の 3 つの主要技術分野のひとつに，すべてのICTリてもやりやすいと感じています．特にネットワークの研究で世界ソースの最適な調和を目指す「コグニティブ ･ ファウンデーショと勝負する，ということに興味がある方に対しては，ここには勝ン」（CF: Cognitive Foundation®）があります．そしてその負できる場所，ポジションがあると言いたいですね．

中にクラウド，エッジコンピュータ，ネットワークサービス，ユーザー設備などレイヤの異なるICTリソースを活用してサービスを提供しよう，というコンセプトがあります．現時点では新しい要※NTT R&D Websiteに掲載された記事を新コーナーとして転載しました．
（URL https://www.rd.ntt/)

素技術を作っているという段階ですが，GPU，FPGA等のマルチレイヤ―のリソースを効率的に活用しようという私の研究が，将来的にはネットワーク自身がサービスコンポーネントを自動で発見し柔軟に合成するなどの技術の実現に貢献できるのでは，と考えています．
◆NTTの強みはどのような点にあるとお考えでしょうか．
私は以前NTTコミュニケーションズ株式会社に所属していたことがあり，その際にホスティングサーバーの更改業務に携わったことがあります．その際，可能な限り短時間で作業を完了しよう，バグ等をきちんと除去しようといったマインドを非常に強く感じました．NTTグループには，移動体通信，地域通信，長距離 ･国際通信，データ通信などさまざまな分野において，日本を代表するキャリアとして高信頼のシステムを開発してきた経験があります．こうした経験をうまく活かすことができれば，研究分野における競争力も高まるのではないかと思います．ソフトウェア工学では高欠陥除去率ともいいますが，それらを強みに，研究スピードがある米企業等とも勝負していければと思います．

2021.1101