Hastega:Elixirプログラミングにおける線形回帰のSIMD命令による並列化  [in Japanese] Hastega: Parallization of Linear Regression Using SIMD Instruction for Elixir Programming  [in Japanese]

Access this Article

Search this Article

Abstract

現在,AI・機械学習のソフトウェア開発で用いられるプログラミング言語は,Pythonがデファクトスタンダードである.しかし,Pythonの言語処理系そのものが並列化されていないため,IoTから送られてくる大量のデータをリアルタイムで処理するには,Pyhton単体では力不足である.この問題の解決策として,我々は並列プログラミング言語Elixirに注目している.我々はHastegaというElixirでSIMD命令による並列化やGPGPUを行うための処理系と,それを用いたAI・機械学習のライブラリを研究開発中である.我々の先行研究では整数演算のベンチマークプログラムを最適化して約4~8倍の速度向上を得ることに成功した.本発表では,線形回帰を行うプログラムの最適化を行い,手で記述したElixirからCPUへのSIMD命令を含むネイティブコードを呼び出した場合の性能評価を行った結果,2.3倍~2.6倍の速度向上が得られたことを報告する.今後,ElixirコードからSIMD命令による並列化およびGPGPUを行うコードをHastega処理系により生成できるようにする予定である.

Python is a programming language used for software development of AI and machine learning programming as a de facto standard. However, it cannot process massive data from IoT because it is not parallelized in the language processor level. To solve this problem, we focus on a parallel programming language, Elixir. We have been researching and developing Hastega, which is a language processor to parallelize a Elixir code into SIMD instructions and/or GPGPU code, and libraries of AI and machine learning written in Elixir using it. In our previous works, we have already succeeded in getting the results that it have achieved to improve the speed of the integer operation benchmarks 4-8 times faster. This presentation reports that we optimize a linear regression program written in Elixir, convert it into native code including SIMD instructions of CPU by our hands, evaluate it in the aspect of performance, and get results that it improves the speed 2.3-2.6 times faster. One of our future works is to implement Hastega that compiles Elixir code into parallelized native code of SIMD instructions and/or GPGPU by the language processor.

Journal

  • 情報処理学会論文誌プログラミング(PRO)

    情報処理学会論文誌プログラミング(PRO) 12(3), 9-9, 2019-07-17

Codes

  • NII Article ID (NAID)
    170000150470
  • NII NACSIS-CAT ID (NCID)
    AA11464814
  • Text Lang
    JPN
  • Article Type
    article
  • ISSN
    1882-7802
  • Data Source
    IPSJ 
Page Top