用語解説集-計算機科学-アーキテクチャ-シミュレータ

アーキテクチャシミュレータ | Architecture Simulator

gem5

MARSSx86

Multi2Sim

  • 様々な命令セットをサポート(x86AMD、ARM、MIPS32、Evergreen、NVIDIA Fermi)
  • User-level simulation 、粒度は不明
  • マルチコアサポート
  • CPU-GPUシミュレーションに用いられる

Sniper

PTLsim

ZSim

McPAT

  • 様々な命令セットをサポート(x86、ARM、Alpha、SPARC)
  • 電力、面積の評価に用いられる サイクルアキュレート  
  • マルチコアサポート
  • Multi-core Power, Area, and Timingの略

SimpleScalar

Full-system simulation

  • コンピュータシステムの全体をシミュレーションする
    • ユーザーランドで動作するプログラムだけでなく、OSやデバイスドライバを含む
    • プロセッサ内部だけでなく、メモリシステムやI/Oデバイスを含む
  • 主にオペレーティングシステムなどシステムソフトウェアの研究に用いられる

User-level simulation

Functional simulation

  • 正確さが劣っても良いので高速なシミュレーションを行いたい場合に用いる。
  • 特定の入力に対する出力が期待どおりであるかどうかを確認することに焦点を当てていますが、実行にかかる時間やサイクル数は考慮しない。
  • CPUが対象の場合は、 Instruction-Level simulation とほぼ同義。

Instruction-Level simulation

  • 対象とする命令セットアーキテクチャの各命令の動作を再現することに重点を置く。
  • サイクル数等詳細な情報は提供しない。
  • 新しい命令セットアーキテクチャを開発する際やに用いる。
    • あるプログラムで実行された命令毎の総数やメモリアクセスの局所性を調べるのに使う。

サイクルアキュレート | Cycle accurate simulation

  • 対象の動作をクロックサイクル単位で正確にモデル化する。
  • OS全体やコンピュータシステム全体を対象とすると、シミュレーションが現実的な時間で完了しない。

Event-driven simulation

  • コンピュータシステム内で発生するイベントを用いる方法
    • イベントとは、命令のフェッチ、メモリアクセス、I/Oアクセスなど

Trace-driven simulation

  • 実機や他のシミュレータから採取したトレースデータを用いる方法
    • トレースデータとは、命令シーケンスやメモリアクセスパターン
  • 特定のアプリケーション、ワークロードの性能分析や、コンピュータシステムの挙動の分析に用いる

VLSI設計の文脈における、シミュレーションの抽象度には下記の3つがある。

  1. ビヘイビアレベル | Behaivioral-level
  2. RTL | Register Transfer Level
  3. ゲートレベル | Gate-Level

ビヘイビアレベル | Behaivioral-level

  • VLSI設計の文脈における、シミュレーションの抽象度の1つ
  • 目的は、VLSI設計の初期段階における、設計対象の明確化。

RTL | Register Transfer Level

  • VLSI設計の文脈における、シミュレーションの抽象度の1つ
    • 一般に、論理回路設計の最終成果物は、この抽象度で記述される。より低い抽象度であるネットリスト(= ゲートレベル の記述)には論理論理合成によってなされ、人手では行わない。
    • この抽象度は、任意の1サイクルにおける記憶素子から記憶素子への論理関数を記述したものである。
  • 目的は、論理回路設計のデバック・検証。

ゲートレベル | Gate-Level

  • VLSI設計の文脈における、シミュレーションの抽象度の1つ
    • 回路をネットリストで記述し(=論理ゲートのスタンダードセル, フリップフロップ, RAM等で記述し)、
    • クロックサイクルより細かいタイムスケールでシミュレーションする
  • 目的は、電力評価、動的タイミング解析。

用語解説集-機械学習-深層学習-学習関連

転移学習 | Transfer Learning

  • ファインチューニング と同様、ある学習済みAIモデルをもう一度学習させること。
  • ただし、 ファインチューニング とは違い、新たに学習させるタスクは学習済みAIモデルのタスクのサブセットと決まっているわけではない。似ているが同一でないタスクである。
  • 一般的には、元の学習済みAIモデルに新たなレイヤーを追加しこの重みに新しいタスクを学習させる。既存のレイヤーはフリーズさせる。つまり、既存のレイヤーの学習率は0とする。

ファインチューニング | Fine-tuning

  • 転移学習 と同様、ある学習済みAIモデルをもう一度学習させること。
  • 一般的には、新たに学習させるタスクは学習済みAIモデルのタスクのサブセットである。
  • 一般的には、元の学習済みAIモデルに新たなレイヤーを追加しこの重みに新しいタスクを学習させる。既存のレイヤーも学習させるが、既存のレイヤーの学習率は低めにする。 る。

Zero-Shot Learning

  • 教師データに無いカテゴリを予測する問題設定。

Few-Shot Learning

用語解説集-機械学習-深層学習-言語系

Transformer

Attention Is All You Need

LSTM | Long Short-Term Memory

トークン化 | Tokenization

  • ある文章を、単語、句読点、数字、記号などに分割すること。
  • 文章を数理モデルで扱える形式に変換するために行う。

Embedding

用語解説集-機械学習-深層学習-LLM

大規模言語モデル | Large Language Model | LLM

GPT-3 | Generative Pre-trained Transformer 3

  • OpenAIによって開発された、数千億のパラメータを持つ言語モデル

GPT-2 | Generative Pre-trained Transformer 2

  • OpenAIが開発した、数億のパラメータを持つ言語モデルの前身。

BERT | Bidirectional Encoder Representations from Transformers

T5 | Text-To-Text Transfer Transformer

  • Google Researchが提案した、様々な自然言語処理タスクを統一的なテキスト形式に変換して解決する手法。

XLNet

RoBERTa | Robustly optimized BERT approach

  • Facebook AI Researchが開発した BERT の改良版で、トレーニング手法やパラメータのチューニングを改善したモデル。