SlideShare a Scribd company logo
1 of 6
5/4
上野(@picakun)
2020GW躍進会
報告会
自己紹介
● なまえ: 上野(@picakun)
○ 写真はNYで無一文になった時に撮ったものです
● 所属: 東大情報理工 システム情報学D2
○ 中村・近藤研究室(コンピュータアーキテクチャが専門)
○ まっくすの学科・研究室の後輩(2017年度まで)兼同期(2018年度から)
● 普段やってる研究
○ 超電導回路を用いた量子コンピュータのエラー訂正についての研究
○ 量子コンピュータ(冷えてないと動かない,エラー多い)のアシストに超電導回
路(冷えてないと動かない,高速,低消費電力)を使おうという話です
○ 量子コンピュータ本当に何もわからん
何つくるの?
● RISC-Vのシミュレータを作りたい
○ 開発というより勉強に近いかも
○ ついでにRust勉強したい
● (将来的に)RISC-Vの量子計算拡張とかも考えてみたい
● 参考文献
○ https://kyamaz.github.io/blog.kyamaz/2019/08/21/20190821-01-opcodes/
○ https://msyksphinz.hatenablog.com/entry/2019/02/24/040000
○ https://book.rvemu.app/
結局どこまでできた?
● RV32Iの主要な命令の実行
○ 複数スレッド向けの命令等は省略
○ フィボナッチ数を計算するCコードが動いた
● 特権命令の実装途中
○ モードを追加
○ 状態制御レジスタ(CSR)を追加
○ 例外をいくつか実装
○ インクリメンタルな実装が難しい…
● https://github.com/yuteno/rust-RISC-V
デモ: フィボナッチ数列の計算
● CコードをRISC-Vバイナリにコンパイルし,シミュレータで実行
● x10およびx15に0x262(=十進数で610=fib(15))が格納されている
● x2はベースアドレス
● (x0は常に0のはずなのでなにかミスってそう…)
フィボナッチ数列を計算するCコード 実行後の各レジスタの値
感想
● Rust意外と書きやすい?
○ mutable / immutableが明示的に決められるの結構嬉しい
○ プロジェクトのディレクトリ構成とかが初見だと難しかった
○ 「Rustっぽい」書き方が出来ている気はしない
● RISC-V,命令フォーマットがカチッとしててよい
● 自作の難しさはシミュレータ < コンパイラ?
○ (今回作った範囲では)オペコードに対して1対1対応の処理を実装すればよかった
○ 以前x86向けCコンパイラの自作をしたときより基本は楽だった
■ 低レイヤを知りたい人のためのCコンパイラ作成入門
https://www.sigbus.info/compilerbook
■ x86(というかCISC)がクソ説はある
● 3日間意外と集中できた
○ (もっと参加者同士でコミュニケーション取ればよかったかも…)

More Related Content

Similar to GW躍進会報告

IoTとビッグデータについて学ぼう
IoTとビッグデータについて学ぼうIoTとビッグデータについて学ぼう
IoTとビッグデータについて学ぼう法林浩之
 
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―Hisao Soyama
 
How can we resolve problems.
How can we resolve problems.How can we resolve problems.
How can we resolve problems.Kiyoshi Ogawa
 
どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~
どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~
どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~法林浩之
 
見える!「IoT」NefryでJenkinsのXFD作ってみた
見える!「IoT」NefryでJenkinsのXFD作ってみた見える!「IoT」NefryでJenkinsのXFD作ってみた
見える!「IoT」NefryでJenkinsのXFD作ってみたTone Blue
 
アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方Takeshi Mikami
 
【Tokyowebmining】open compute project
【Tokyowebmining】open compute project 【Tokyowebmining】open compute project
【Tokyowebmining】open compute project Junichiro Tani
 
NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習itoyan110
 
コンパレータを使ってみよう
コンパレータを使ってみようコンパレータを使ってみよう
コンパレータを使ってみようNISHIHARA Shota
 
The invitation to Infrastructure CI
The invitation to Infrastructure CIThe invitation to Infrastructure CI
The invitation to Infrastructure CIirix_jp
 
Raspberrypitraining20171027
Raspberrypitraining20171027Raspberrypitraining20171027
Raspberrypitraining20171027Kiyoshi Ogawa
 
Kosen_conf_in_Sendai2_20130806
Kosen_conf_in_Sendai2_20130806Kosen_conf_in_Sendai2_20130806
Kosen_conf_in_Sendai2_20130806Yudai Hashimoto
 
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ 「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ kirin_nico
 
2018-06-15第4回高大連携 高校生・大学生交流会2018
2018-06-15第4回高大連携 高校生・大学生交流会20182018-06-15第4回高大連携 高校生・大学生交流会2018
2018-06-15第4回高大連携 高校生・大学生交流会2018Matsushima Sho
 
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~法林浩之
 
下関中等教育学校 出前講義の資料(2023/8/18)
下関中等教育学校 出前講義の資料(2023/8/18)下関中等教育学校 出前講義の資料(2023/8/18)
下関中等教育学校 出前講義の資料(2023/8/18)Kazuaki Tanaka
 
個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のり個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のりK K
 

Similar to GW躍進会報告 (20)

IoTとビッグデータについて学ぼう
IoTとビッグデータについて学ぼうIoTとビッグデータについて学ぼう
IoTとビッグデータについて学ぼう
 
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
 
How can we resolve problems.
How can we resolve problems.How can we resolve problems.
How can we resolve problems.
 
どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~
どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~
どこでも安全に使えるIoTを目指して ~さくらインターネットのIoTへの取り組み~
 
見える!「IoT」NefryでJenkinsのXFD作ってみた
見える!「IoT」NefryでJenkinsのXFD作ってみた見える!「IoT」NefryでJenkinsのXFD作ってみた
見える!「IoT」NefryでJenkinsのXFD作ってみた
 
アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方
 
【Tokyowebmining】open compute project
【Tokyowebmining】open compute project 【Tokyowebmining】open compute project
【Tokyowebmining】open compute project
 
NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習
 
コンパレータを使ってみよう
コンパレータを使ってみようコンパレータを使ってみよう
コンパレータを使ってみよう
 
The invitation to Infrastructure CI
The invitation to Infrastructure CIThe invitation to Infrastructure CI
The invitation to Infrastructure CI
 
Raspberrypitraining20171027
Raspberrypitraining20171027Raspberrypitraining20171027
Raspberrypitraining20171027
 
S09 t4 wrapup
S09 t4 wrapupS09 t4 wrapup
S09 t4 wrapup
 
Kosen_conf_in_Sendai2_20130806
Kosen_conf_in_Sendai2_20130806Kosen_conf_in_Sendai2_20130806
Kosen_conf_in_Sendai2_20130806
 
20181030 fun
20181030 fun20181030 fun
20181030 fun
 
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ 「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
 
2018-06-15第4回高大連携 高校生・大学生交流会2018
2018-06-15第4回高大連携 高校生・大学生交流会20182018-06-15第4回高大連携 高校生・大学生交流会2018
2018-06-15第4回高大連携 高校生・大学生交流会2018
 
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
IoT×ビジネス活用 ~最先端技術のビジネス活用に向けて~
 
下関中等教育学校 出前講義の資料(2023/8/18)
下関中等教育学校 出前講義の資料(2023/8/18)下関中等教育学校 出前講義の資料(2023/8/18)
下関中等教育学校 出前講義の資料(2023/8/18)
 
個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のり個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のり
 
Saisyu
SaisyuSaisyu
Saisyu
 

GW躍進会報告

  • 2. 自己紹介 ● なまえ: 上野(@picakun) ○ 写真はNYで無一文になった時に撮ったものです ● 所属: 東大情報理工 システム情報学D2 ○ 中村・近藤研究室(コンピュータアーキテクチャが専門) ○ まっくすの学科・研究室の後輩(2017年度まで)兼同期(2018年度から) ● 普段やってる研究 ○ 超電導回路を用いた量子コンピュータのエラー訂正についての研究 ○ 量子コンピュータ(冷えてないと動かない,エラー多い)のアシストに超電導回 路(冷えてないと動かない,高速,低消費電力)を使おうという話です ○ 量子コンピュータ本当に何もわからん
  • 3. 何つくるの? ● RISC-Vのシミュレータを作りたい ○ 開発というより勉強に近いかも ○ ついでにRust勉強したい ● (将来的に)RISC-Vの量子計算拡張とかも考えてみたい ● 参考文献 ○ https://kyamaz.github.io/blog.kyamaz/2019/08/21/20190821-01-opcodes/ ○ https://msyksphinz.hatenablog.com/entry/2019/02/24/040000 ○ https://book.rvemu.app/
  • 4. 結局どこまでできた? ● RV32Iの主要な命令の実行 ○ 複数スレッド向けの命令等は省略 ○ フィボナッチ数を計算するCコードが動いた ● 特権命令の実装途中 ○ モードを追加 ○ 状態制御レジスタ(CSR)を追加 ○ 例外をいくつか実装 ○ インクリメンタルな実装が難しい… ● https://github.com/yuteno/rust-RISC-V
  • 5. デモ: フィボナッチ数列の計算 ● CコードをRISC-Vバイナリにコンパイルし,シミュレータで実行 ● x10およびx15に0x262(=十進数で610=fib(15))が格納されている ● x2はベースアドレス ● (x0は常に0のはずなのでなにかミスってそう…) フィボナッチ数列を計算するCコード 実行後の各レジスタの値
  • 6. 感想 ● Rust意外と書きやすい? ○ mutable / immutableが明示的に決められるの結構嬉しい ○ プロジェクトのディレクトリ構成とかが初見だと難しかった ○ 「Rustっぽい」書き方が出来ている気はしない ● RISC-V,命令フォーマットがカチッとしててよい ● 自作の難しさはシミュレータ < コンパイラ? ○ (今回作った範囲では)オペコードに対して1対1対応の処理を実装すればよかった ○ 以前x86向けCコンパイラの自作をしたときより基本は楽だった ■ 低レイヤを知りたい人のためのCコンパイラ作成入門 https://www.sigbus.info/compilerbook ■ x86(というかCISC)がクソ説はある ● 3日間意外と集中できた ○ (もっと参加者同士でコミュニケーション取ればよかったかも…)