コンピューターにおけるハードウェア

機械学習技術 人工知能技術 自然言語処理技術 確率的生成モデル アルゴリズム ICT技術 デジタルトランスフォーメーション技術 コンピューターアーキテクチャ ITインフラストラクチャ技術 深層学習 機械学習における数学 本ブログのナビ

コンピューターにおけるハードウェア

コンピューターは、プロセッサ、メモリ、ストレージ、入力デバイス(キーボード、マウスなど)、出力デバイス(ディスプレイ、プリンターなど)、ネットワークインターフェイスカード、サウンドカード、ビデオカード、マザーボード、電源などのハードウェア部品から構成される。

これらのハードウェア部品は、ソフトウェア(アプリケーション、オペレーティングシステム、デバイスドライバなど)と協調して、コンピューターの機能を提供する。例えば、プロセッサはコンピューターの計算や処理を担当し、メモリはプログラムやデータの一時的な格納場所として機能する。ストレージは永続的なデータの保存場所として使用され、入力デバイスはユーザーの入力を受け付け、出力デバイスは結果を表示する。

ハードウェアの性能や構成は、コンピューターの性能や機能に大きな影響を与える。また、ハードウェアの開発や製造は、技術革新や市場競争に大きな影響を与える重要な産業でもある。

ここでは、これらのコンピュターのハードウェアでも特に、機械学習技術と関連の深いFPGAやASIC等のCPUと、人工知能技術とも関連が深いIOT技術について述べる。

実装

Rustは、Mozilla Researchが開発したシステムプログラミング向けのプログラミング言語であり、高いパフォーマンス、メモリ安全性、並列性、およびマルチスレッド処理を重視して設計されたものとなる。また、コンパイル時に強力な静的型チェックを行うことで、バグを予防することに焦点を当てた言語でもある。

ここでは、このRustに関する概要と基本的な文法および各種適用事例と具体的な実装について述べている。

Raspberry Pi(ラズベリーパイ)は、シングルボードコンピュータ(Single Board Computer, SBC)の一つであり、英国のラズベリーパイ財団(Raspberry Pi Foundation)によって開発された小型のコンピューターとなる。その名前は、英国で親しまれている「ラズベリーパイ」というデザートに由来している。

ここではこのRaspberry Piの概要と様々な適用事例と具体的な実装例について述べている。

一般的に、IoTデバイスはセンサーやアクチュエータを備えた小型のデバイスであり、ワイヤレス通信を使用してセンサーデータを収集し、アクチュエータを制御する形態となる。ワイヤレスでのIoT制御にはさまざまな通信プロトコルや技術が使用される。ここでは、このワイヤレス技術を用いたIoTを様々な言語で実装した例について述べている。

技術詳細

コンピューターの基本となるデジタル処理は、”0″,”1″の2つの数値(2進数)で表すものとなる。ここでこの”0″と”1″の2の状態を表現したものを1ビット(Binary Digitが語源)、また8ビットをひとつにまとめた情報単位をバイトと呼ぶ。1ビットが”0″と”1″の2通りの状態しか表せないのに対して、1バイトは256通りの状態を表現できる(1バイト=28=256)。

“コンピューターを構成する計算要素と半導体チップについて“で述べた半導体チップを設計するプロセスと、”ソフトウェア技術者のため のFPGA入門 機械学習編“から一歩進めたAIアプリケーションに特化した半導体チップについて述べたいと思う。

今回は、半導体製造技術について述べる。半導体製造は、大きく分けると「前工程」「後工程」の2つに区分される。前工程はウエハ製造、洗浄工程、成膜工程、リソグラフィ工程、エッチング工程、不純物拡散工程等があり、後工程には、ダイシング、マウント、ボンディング、モールド、マーキング、バンプ加工、パッケージング等がある。

FPGAとはField Programmable Gate Arrayの略で、再構成可能なハードウェアを指す。FPGAの中身は回路を構成するためのロジック、DSP、RAMや専用のハードウェア・マクロなどがあり、現在のFPGA業界はXillinx社とIntel社(旧Altera社、2015年にIntel社が買収)の二社のデバイスが市場の大半を占めている。

ソフトウェアからFPGAやASICなどのハードウェアを開発する手法は古くからあり、ハードウェア業界では一般に高位合成と呼ばれている。

近年、AIやディープラーニングの勉強会でFPGA関連のコミュニティベースでの勉強会などで、ソフトウェアから高位合成でもFPGAを開発する発表が行われている。高位合成が目立つようになってきたのは、高位合成ツール本体の価格が下がってきていること、またC言語からの高位合成だけでなく、Java・Python・bubyといった言語からも高位合成できるツールなども登場し、FPGAを使うためにわざわざ専用の言語(従来のVerilogやHDL、VHDL等)を使う必要性がなくなりつつあるところにある。

    従来の計算機アーキテクチャ、特にマイクロプロセッサアーキテクチャはムーアの法則(半導体技術の向上に伴い、1.8年毎にダイに実装されるトランジスタ数が2倍になるとした予想)を前提に単位面積辺実装できる論理回路の規模がスケールでき、結果としてトランジスタのゲート長が短くなるので動作時のクロックサイクル時間を短縮できて、要求される実行性能(実行に要する時間の短さ)もそれとともにスケールができていた。つまり何年後にこれだけダイ面積が利用でき、配線遅延もこれだけだから動作クロック周波数もこれだけになるので、これだけの機能を実装したプロセッサはこれだけの性能になるというのが大体見積もれていた。

    量子コンピューターは、量子力学の原理を利用して情報を処理するコンピューターの形態となる。従来のコンピューターとの相違点は、従来のものが「ビット」と呼ばれる2進数の情報を処理してい他のに対して、量子コンピューターでは「量子ビット」または「qubit」と呼ばれる量子力学的な特性を持つ情報の単位を使用点にある。

    NVIDIAが開発している、GPUがのっかったエッジコンピューティングマシン。 NVIDIAなのでCUDAが利用可能なので、外出先でもGPUプログラミングができる夢のマシン。GitHub – nebosuke/jetson_setup_log

    機械診断のような多くの産業用ユースケースは、組み込み型推論(産業オートメーションで広く使用されている組み込みコントローラ上で知識ベースの推論技術を実行するタスク)から利益を得ることができます。しかし、プログラマブルロジックコントローラ(PLC)のような組み込みデバイスのメモリとCPUの制限のため、最先端の推論ツールや方法は、産業オートメーション環境に容易に移行することはできません。本論文では、軽量なOWL 2 EL推論をPLCプラットフォームに移植し、産業用オートメーション環境で実行するためのアプローチについて説明する。PLCベースのEL+推論器のプロトタイプ実装で実施した、タービン診断に関するユースケースの初期ランタイム実験について報告する。

    ワイヤレス通信の媒体である電波は、英語では”Radio wave”もしくは”Hertzian wave”と呼ばれており、”Radio”と略して呼ばれることもある。

    電波は、1864年(日本では幕末期で蛤御門の変が起きた年)でジェームス・クラーク・マクスウェルにより予測された「光は波の姿をした電磁波である」と彼の見つけ出した電磁場理論であるマクスウェルの方程式と、その13年後の1887年(日本では明治20年)にハインリッヒ・ヘルツがそのマクスウェルの方程式から光よりも周波数の低い電磁波(電波)の存在を推測し、電磁波の発生と検出を可能とする実験機器を考案制作してその存在を実証したものとなる。

    RFIDとは、”Radio Frequency Identification”の略語で、無線通信を利用して物品や動物などの識別情報を読み取る技術となる。このRFIDシステムは、主にRFIDタグ、RFIDリーダー、中央データベースの3つの要素から構成される。RFIDは物流、農業、医療、製造業等さまざまな分野で利用されている。更にRFID技術とAI技術を組み合わせることで、ビジネスプロセスの最適化や効率化が期待できる。

    IOTデバイスとICTを結ぶ手段としては、無線技術が最もよく用いられる。ワイヤリングをすることなくどこでも簡単に設置できることが強みだが、耐ノイズ性や一度に送れるデータ量の制限、電源の確保等いくつか検討すべき課題も持っている。

    今回は近距離無線通信技術の一つであるBLE(Bluetooth Low Energy)との接続について述べる。BLEはBluetoothの拡張仕様の一つで、名前にもあるとおり極低電力での通信が可能なことが特徴となっている。

    今回は実際のBLEの通信について述べてみたい。まずは最もシンプルなものとして、bluejellyというjavascriptのライブラリを利用してBLEと通信してみる。

    bluejellyはWeb Bluetooth APIというlavascriptのライブラリのラッパーで、htmlファイルとbluejelly.jsとstyle.cssの3つのファイルだけで動作し、htmlファイルを書くことで様々なBLEとの接続が可能になるものとなる。

    BLEとの接続のライブリの中で、最もシンプルに構築できるbluejelly.jsについて紹介した。今回はこれまで述べたサーバーサイドのアプリケーションと組み合わせることが可能なnode.js上で動作するnobleについて紹介したい。

    nobleは、node.js上で動くjavascriptのモジュールで使い方としては「npm install noble」でモジュールをインストールして、例えば前述のbleデバイスのcsanの場合は以下のようなコードでおこなうことができる。

    コメント

    1. […] ITインフラストラクチャ 深層学習 機械学習における数学 コンピュータのハードウェア DXの事例 […]

    2. […] 分散コンピューティング: 計算リソースを効果的に活用するために、GPU、TPU、クラウドコンピューティングなどの高性能なハードウェアを利用することが考えられる。機械学習による並列分散処理に関しては”機械学習における並列分散処理“を、クラウドの利用に関しては”クラウド技術“、GPU等のアクセラレーションに関しては”コンピューターにおけるハードウェア“を参照のこと。 […]

    3. […] 活用することが必要となる。これにより、リアルタイム物体検出アプリケーションを実現することが可能となる。詳細は”コンピューターにおけるハードウェア“等も参照のこと。 […]

    4. […] などのハードウェアアクセラレーションを使用して、計算コストを削減する。ハードウェアアクセラレーションに関しては”コンピューターにおけるハードウェア“を参照のこと。 […]

    5. […] ーニングやクオンティゼーションなどによるモデルの軽量化について“を、ハードウェアアクセラレーションに関しては”コンピューターにおけるハードウェア“を参照のこと。 […]

    6. […] 殊なハードウェアの利用が検討される。また、ミニバッチ処理やGPUの活用なども計算効率を向上させる手段となる。詳細は”コンピューターにおけるハードウェア“も参照のこと。 […]

    7. […] ウェアアクセラレーション: GPUやTPUなどのハードウェアアクセラレーションを使用して、計算コストを削減します。詳細は”コンピューターにおけるハードウェア“を参照のこと。 […]

    タイトルとURLをコピーしました