• ベストアンサー

ノートパソコンの1回の演算にかかる時間

DellのG3を使っています。 ものすごくいいCPUが載ってて、ものすごい回数の演算ができるみたいです。 二進数の計算で、    1+1=0 と、1回にかかる時間ってどれくらいなんでしょうか? そういう時間ってわかるんでしょうか? またわかる場合は、毎回同じ時間なんでしょうか? 人間の気分、みたいに天気や気温で変化したりするものでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • parts
  • ベストアンサー率62% (6366/10151)
回答No.4

Q/1回にかかる時間ってどれくらいなんでしょうか? A/あり得ないことですけど、演算ミス(キャッシュミスヒット、デッドロック、投機分岐デコードミスによるパイプライン廃棄)が全く起きず、キャッシュやメモリーのバッファーアンダーラン状態にならないと仮定すれば、クロック周波数が1GHzなら見た目の処理時間は最大10億回/秒です。2GHzなら20億回。3GHzなら30億回を上限として演算出来ます。だから、1GHzなら10億分の1秒です。 厳密値を出すなら、命令の入力から出力までに必要なクロックは製品によって異なります。最近のOut-of-Orderコアでは結果の入力から出力まで最低でも10~25ぐらいのクロックを喰うはずです。だから、CPUコアに入力されて終わって結果をCPUから出すまでの処理は、1GHzだと仮定して、良くて1億分の1秒、一般的なもので数百万分の1かさらに遅いぐらいじゃないかな?これを処理サイクルと言います。 一応、サイクルと見た目の演算の違いも書いておきます。 処理サイクルとは、命令を処理し始めてから終わるまでの時間のこと。 見た目の演算は1秒間で答えを出す回数のこと。 前者は、例えば食品工場でベルトコンベアなどをまわって、練ったり、焼いたり、箱に詰めたりして商品を作っていく工程に必要な時間のこと。これは同じスピードでベルトコンベア(プロセッサで言えば、クロック周波数)がまわるなら、いわゆる計算速度の下限値(もっと性能が落ち込むときの速度)に相当します。 それに対して、見た目の演算は、出来た商品が出てくる場所を定点観察し、1つのラインから作られて出てくる商品の数である。これは同じ速度でコンベアが回るならいわゆる演算の上限値となる。(不良品も含んでいることがあるかもしれないので注意) Q/演算速度は気候の影響を受けますか? A/受けるか受けないかだけで言えば受けます。気温だと製品によっては顕著に受けるかも知れません。それ以外の要件は通常一般家庭で運用する中で、もしもその影響があるなら正常動作しなくなる時にしか分からないでしょう。僅かな差が出ても気が付かない程度の差が出るだけですから。 電磁波や磁気・放射線の影響によって動作に狂いが生じることはあります。 一応温度を説明します。温度の影響という点では、今のプロセッサーならプロセッサーの内部温度が一定以上に加熱されると自動的にクロック周波数を制御して熱の発生を抑える仕組みが備わっています。そういう点では温度では若干の上下はあり、温度の低い時期の方が、結露などの心配がなければ(基板で結露が起きると故障の原因となることがあります)高い性能を維持出来る可能性があります。 夏場の屋外などで使う場合は最大性能が若干下がったり、最大性能を維持出来る時間が短くなる可能性が今でもあります。これは、CPUに限らず、GPU、メモリー、SSD(搭載モデルのみ)などの半導体全てで一定の熱量を超えた場合、熱クロック制御(サーマルクロックマネジメント)や熱放出制御(サーマルスロットリング)によって処理を抑える可能性があります。 尚、半導体全般の場合、温度が規程を超えて運用されると、過剰加熱状態になり、データを流すための回路スイッチ(通り抜け、分岐)処理やゲーティング(封鎖処理)が正常に出来なくなるため、正しい計算が出来なくなります。すると、動作が止まるのです。パソコンでそれが起きると、WindowsならBSoD(Blue Screen of Death、死のブルースクリーン)が表示され、再起動も行えず、平熱に戻るまで電源を切って冷ますしかなくなります。これを熱暴走と言います。 磁気や放射線の影響も同様で、これらも強いエネルギーを発する物だと演算を狂わせる(数値そのものを壊し化けさせる)特性があります。これらの場合でも、一定の水準まではエラーの訂正が行われるので、僅かに処理が遅くなる可能性がありますが、よほど特別な計測装置で常に演算速度を調べていない限り(それを調べるのに性能を常時大幅に喰らうので、この手のモニタリングは原因不明の不良が起きているサーバーなどで重点的に動作をチェックすると行った場合以外には通常は行いません)、たぶん利用者がそれに気が付くことはないでしょう。 それらの影響が見事にシステムに影響を与えていると分かったときには、熱暴走と同じようにシステムは停止します。(この場合、半導体で動くディスプレイなども変な画を出したりして、止まるはずです) 尚、1つのプロセッサーコアで同時に処理出来る演算の数は1つとは限りません。 一応ここからは蛇足で、1秒間に最大どれだけの演算が出来るかも書いておきます。 あくまで、物理的な理論上で考えられる限界の話です。 整数の四則演算であれば、プロセッサーコアに内蔵されているALU(Arithmetic Logic Unit/整数演算器)の数×クロック周波数の値×コア数分の処理に処理ミスの平均割合(ミスヒット、パイプラインクラッシュ率を差し引いた適正処理率)で掛けた物を1秒の間に行えます。 ちなみに、ミスヒット率を考慮しないものを実際のプロセッサで説明すると、 Core i7-9750H(2.6GHz-4.5GHz/6C/12T、TDP35-45W、Tjunction100℃)やCore i5-9300H(2.4GHz-4.1GHz/4C/8T、TDP35-45W、Tjunction100℃)で であれば、 9750Hならば1秒間に1つのALU換算で最大26億回(2.6GHz)~45億(4.5GHz)回演算出来るでしょう。 単純な整数和佐積算(整数の足し算、引き算、かけ算、割り算)の並列演算数は専用に機能するALUが2つ(2器/2 Units)なので、1つのコア(1C)辺り2倍になります。即ち最大90億回/秒となるわけです。9750Hはそれが6コアありますので、12個の和佐積算演算が1サイクル中に出来るということになります。90億×6コア(または45億回×12 ALUs)なので、540億/秒となる。 役割を整数和佐積算に限定しない場合、 これとは別に、FPU(浮動小数点演算器、Floating Point Unit)やAGU(Address generation unit )、ストアカウンター(Store Data)、Branch(ALU)などもありますので……。(このうちFPUとAGUは2器存在します) ALU(整数の足し算、引き算、かけ算、割り算)以外の処理を含めたら最大で約5系統の処理を同時に行うことが出来ます。 さらに、SMT(プロセッサーの括弧書きで12Tと書かれている数字)を考慮した場合、6系統から8系統の処理とほぼ同等の処理が出来るようになります。 即ち、Core i7-9750Hの場合、最大で1秒間に26億~45億(熱量に応じて変化する)×6~8系統処理(約1.2倍)×6コアの計算が1秒間に行えます。 9300Hならば、24億~41億×7から8系統×4コアの計算となります。この辺りは興味があるなら自分で計算して見ると良いでしょう。 尚、4T/4C(SMTなし)だったなら、24億~41億×5系統(5 Decode)×4コア程度に僅かな±が出る程度となるでしょう。 これにはAVX/SSEによるSIMDに基づく複数結果の同時出力を含みません(この場合は結果抽出数が上振れすることがあります)。また、ミスヒット率、バッファ枯渇は考慮されていませんのでご注意下さい。 また、これはあくまで推計であり演算重複などが生じる場合や、意図的な桁あふれ演算(バッファオーバーフロー演算)や分割演算をする場合、オーバーヘッド大きい演算の場合は内容によって性能が低下することがあります。 といった具合です。 最後に次の質問への答えです。 Q/そういう時間ってわかるんでしょうか? A/見た目で分かるのかというと実は分かりません。結果を見た上でおおよそこれぐらいだろうという数字は出てきますが、実はプロセッサーを設計している人でさえも、設計している中で正確に必ずこうなると分かっている訳では無く、出来た後の製品を動かして見て、計算を回した後にどれぐらいで「回っているようだ」と見ているのです。それが、推定値以上か以下かは設計して出して見ないと分からない訳です。 それぐらい、今の半導体は凄まじい性能で動いており、複雑な構造をしていると言えます。 だから、数値は理論だったり、実測(ベンチマークという共通の計算ソフトを動かして)の値を元にした推計値となり、これらの値は厳密値ではありません。あくまで、出力カ所を定点で見ている最大値となり、数式の入力から結果の出力は、プロセッサーブロックダイヤグラムを元に入力~出力までのルートを何クロックで通過するかを調べないと分かりません。(これを明確に知っているのは設計した企業の担当者のみでしょう。)

mathematiko
質問者

お礼

丁寧に回答いただけてありがとうございます。 こんなにお詳しいってすごいですね。とても勉強になりました・・・というか勉強するヒントありがとうございます。勉強します。

その他の回答 (3)

  • okok456
  • ベストアンサー率43% (2746/6352)
回答No.3

CPU:第9世代 インテル® CoreTM i7-9750H (12MB キャッシュ, 最大 4.5GHz まで可能, 6 コア) メモリ:16GB, 2x8GB, DDR4, 2666MHz 私のパソコンの数段上の能力がありそうです。 Windows 10の電卓で、2進数/16進数の計算を行う方法 を参考に Windows付属の電卓ソフトでやってみました。 https://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=019985 私のパソコンでも 二進数の計算で、1111111111+1111111111=11111111110 レベルでも「=」を押した瞬間に答えが表示されます。 人間が仕事しやすい環境がパソコンにも適しているよです・ 参考に パソコンが正常に動作する温度や湿度など https://michisugara.jp/archives/2011/lectures_22.html パソコンの熱暴走に気を付けよう! https://www.sakura-pc.jp/pc/contents/trouble/heat.html 尚、Excelでの二進数の計算は面倒なようです。 参考に 二進数 :Excel関数 を http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/dec2bin.html 私のPCでも100セルの10桁の数値の合計や平均値も瞬間的に表示します。 Dell G3は高画質な動きの速いゲームに素早い反応できるパソコンのようですね。 私のPCより遥かに早く起動し、データの大きな動画の編集や変換にも適しているでしょう。 YouTubeの4K映像もスムーズに再生できるかもしれませんね。 https://www.youtube.com/watch?v=sk9u_iFEue0 私のPCでは1440p60に設定すると止まってしまいます。

mathematiko
質問者

お礼

丁寧に回答いただけてありがとうございます。 こんなにお詳しいってすごいですね。とても勉強になりました・・・というか勉強するヒントありがとうございます。勉強します。

  • tmys10
  • ベストアンサー率36% (338/930)
回答No.2

> 二進数の計算で、 >   1+1=0 >と、1回にかかる時間ってどれくらいなんでしょうか? 1+1は10じゃないかと思いますがそれはさておき、 CPUが直接扱える命令は単純なものです。たとえば 1) レジスタAに「1」をセットする 2) レジスタBに「1」をセットする 3) レジスタAにレジスタBの値を加算し、結果をレジスタAにセットする というものです。 1秒間に実行できる命令の数は、MIPS (mega instruction per seconds)という単位で表します。Wikipediaで引くとCore i9-9900Kの性能は412,090MIPSです。(G3のCPUはCore i7-9750とあるのでもうちょっと遅いかも。) このCPUで3命令の実効にかかる時間は、 3 * 1/412,090e+6 = 7.2 e-12 = 0.0000000000072 秒となります。 > 毎回同じ時間なんでしょうか? 人間の気分、みたいに天気や気温で変化したりするものでしょうか? CPUは「クロック」と呼ばれる信号に合わせて動作します。クロックとは軍隊の行進に使われる太鼓のようなもので、クロックが速ければ動作が速く、遅ければ動作が遅くなります。クロックは一定なので処理にかかる時間も一定です。 しかし、現在のOSはマルチタスク型で同時に複数のプログラムが実行されます。これは命令と命令の間に他のプログラムの処理が割り込むことがあるということです。 実行の度に環境が異なるので、現実に処理時間を複数回測定すると異なる結果が出てくるでしょう。

mathematiko
質問者

お礼

丁寧に回答いただけてありがとうございます。 こんなにお詳しいってすごいですね。とても勉強になりました・・・というか勉強するヒントありがとうございます。勉強します。

  • chachaboxx
  • ベストアンサー率23% (412/1777)
回答No.1

一回の演算はクロック数でおおよそ見当がつきますが、複雑な命令の場合はCPUやGPUが対応していれば結果が安定しますが対応してないとOS側でCPUが実行できる命令に分解されるので結果がまちまちです。また、まとまった命令になるとその内容により予測分岐処理がはずれたり他の処理(ディスクアクセス等)のオーバーヘッドに待たされたり、OSからのタスクスライス(マルチタスクによる)で順番待ちになったりもあります。 最も単純な演算(CPU命令=足算=add)は、どんなCPUでも用意されている命令(1クロック処理)なので、例えば、スマホとスーパーコンピュータの速度の比較の目安にはなります。 基本的にCPUクロックの逆数が演算に要する時間です。 ※4GHzなら、250p秒=光が7.5cm進む時間

mathematiko
質問者

お礼

回答いただけてありがとうございます。 お詳しいんですね。

関連するQ&A