条件分岐とは? わかりやすく解説

条件分岐

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/18 09:34 UTC 版)

GPGPU」の記事における「条件分岐」の解説

GPUはシェーダープロセッサ(ストリームプロセッサ、ストリーミングプロセッサとも)と呼ばれる演算ユニット多数持ち複数のシェーダープロセッサをまとめてクラスタとしている。これらの演算器に命令与えるインストラクション・ユニットはクラスタごとに1台しか無くクラスタ構成するシェーダープロセッサはそれぞれ異なデータ与えられ、そのデータに対して同じ命令内容一度実行するこのようなSIMDデータ処理3次元演算マルチメディア理に効果発揮する一方で命令中に条件分岐による分岐が入るとオーバーヘッドがかさみ、途端に効率落としてしまう。今日CPUでは、このようなペナルティ最小限にするためにプリフェッチ/プリデコードや投機実行レジスタ・リネーミングといった機能備えているが、GPUでは備えていない(限定的な条件付き投機的実行行なえるものもある。GPUでの動的分岐DirectX 9.0c世代以降でようやく現実的になった)。またPC向けのGPUではシェーダープロセッサごとに分岐するためのプログラムカウンター持たないため、条件分岐の際は個別異な命令発行するではなく実際に命令実行するか否か分けるためのマスクレジスタを使って分岐する手法採用されている 。 また、シェーダープロセッサ間でデータやりとりする場合遠くデータバス経由することになり、それがボトルネックとなってしまう。この点に関しては、DirectX 10世代統合型シェーダーアーキテクチャ以降ハードウェア搭載されている、小容量だがプロセッサグループ内で共有することのできる高速キャッシュメモリ共有メモリ)を介することで、プロセッサグループ内でのデータ交換メモリI/O効率高めることができる 。 一般アプリケーションで条件分岐が存在しないもの珍しく、こういった制約によってGPUオフィススイートのようなアプリケーションの実行には不向きである。GPGPU発展にはいかに効率落とさず条件分岐を行なうかというのが1つ課題となっている。原理的にシンプルなアルゴリズム構造持ったプログラムによって、並列データ処理最適化することがGPGPU特長最大限引き出すことにつながるといえる

※この「条件分岐」の解説は、「GPGPU」の解説の一部です。
「条件分岐」を含む「GPGPU」の記事については、「GPGPU」の概要を参照ください。


条件分岐

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/04 03:18 UTC 版)

Smalltalk」の記事における「条件分岐」の解説

条件分岐は #ifTrue:ifFalse: セレクター用いたメッセージ式として、条件式結果真偽値へのメッセージ送信の形で次のように記述する。 3 < 4 ifTrue: [ 5 ] ifFalse: [ 6 ]. Smalltalk では nil がオブジェクトである。これを利用した nil 専用の条件式も存在する。 object := nil.object ifNil: [ 5 ] ifNotNil: [ 6 ].object ifNotNilDo: [ :value | value inspect. ]. 条件分岐の制御において、他の言語でいうswitchに直接該当する文は存在しない。多態性を利用して分岐するか、次のように連想配列を利用して分岐するため不要である。 something: aNumber| switch |"速度が求められる場合は、初期化済みのDictionaryのオブジェクトをインスタンス変数やクラス変数にキャッシュする。"switch := Dictionarynewat: 1 put: [ #a ];at: 2 put: [ #b ];at: 3 put: [ #c ];yourself.^ ( switch at: aNumber ifAbsent: [ #z ] ) value. 但し一部の処理系では、次のようなswitchに類似した書き方ができるものも存在する。 something: aNumber^ aNumber caseOf:{[ 1 ]->[ #a ].[ 2 ]->[ #b ].[ 3 ]->[ #c ].}.

※この「条件分岐」の解説は、「Smalltalk」の解説の一部です。
「条件分岐」を含む「Smalltalk」の記事については、「Smalltalk」の概要を参照ください。


条件分岐

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/13 00:36 UTC 版)

dc (UNIX)」の記事における「条件分岐」の解説

マクロ仕組み利用して条件分岐を行うことができる。=r コマンドスタックから要素2 つポップし、それらの値が等しいときにレジスタ r に格納されているマクロ実行する。以下に示すのはスタック先頭に 5 があるときに Equal表示する例である: [[Equal]p]sm 5 =m その他にも、> (もともとの先頭大き場合マクロ実行)、!> (大きくない場合)、< (小さ場合)、!< (小さくない場合)、!= (等しくない場合) がある。

※この「条件分岐」の解説は、「dc (UNIX)」の解説の一部です。
「条件分岐」を含む「dc (UNIX)」の記事については、「dc (UNIX)」の概要を参照ください。

ウィキペディア小見出し辞書の「条件分岐」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


このページでは「ウィキペディア小見出し辞書」から条件分岐を検索した結果を表示しています。
Weblioに収録されているすべての辞書から条件分岐を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書から条件分岐 を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「条件分岐」の関連用語


2
投機的実行 デジタル大辞泉
58% |||||


4
決定木 デジタル大辞泉
58% |||||




8
NSチャート デジタル大辞泉
50% |||||

9
デッド‐コード デジタル大辞泉
50% |||||


条件分岐のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



条件分岐のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのGPGPU (改訂履歴)、Smalltalk (改訂履歴)、dc (UNIX) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS