• 締切済み

CPUの計算量、計算速度について

いくつかのゲームやパソコンのCPUは64bitなどのようですが、 64bitというのは、約1844京です。 このデータを約2GHzのスピードで処理する。 すると、2GHzは20億ぐらいなので、 1844京÷20億=92億秒 92億秒、約10万日かかってしまいます。 これはもしかして割るのではなく、かけるのでしょうか? 1844京のデータを1秒間に20億回取り扱える。 1844京×20億が、1秒間に取り扱える限界のデータ量ということでしょうか? ただ、スパコンの京が1秒に計算できる量が「1京」と聞いています。 私の認識はどこが誤っているのでしょうか?

みんなの回答

回答No.12

32Bitや64Bitは一回に扱える実数データーの大きさですから計算の数値としては1です また2GHzとCPUクロックはなっていますが1回の計算を行うのに単純な1の加算や減算で4クロック必要です、(X86、X64系は4クロック)一番短い命令でも0.5GHz=1秒間に500万回、平均的計算では100万回程度と言う事になります。また1Gflops以上がスパーコンピューターと言われていますが、現状で最も高速なXeon16CPUでもMflops台です、TESLAなどGPUコンピューティングを使えばスパコンになるレベル、ちなみに京は10Pflopsですから1Gflopsの1万倍の速度で64Bit2GHzのCPUを約70万個で計算して1京な訳です、64Bit2GHzCPU1個が約1844京にはなりません。 1位のサンウエイタイフーンは1.45GHzのCPUを1000万個で9Pflopsです。

  • doxob
  • ベストアンサー率22% (48/209)
回答No.11

No.9です。 実は実数表現の先頭の1bitが符号になっています。実数部1+47bit,指数部1+15bitみたいなかんじですね。で、先頭が1なら負,0なら正を表します。

rateing
質問者

補足

符号で1bitとってるんですね。 納得いきました。 ありがとうございます。

  • doxob
  • ベストアンサー率22% (48/209)
回答No.10

追加です。 64bitとは、一度に出し入れできるデータ長です。計算できる最大が64bitではありません。 2回に分けて128bit長もありますし、16回に分けて1Kbit長のデータもあります。場合によっては32bitデータを1度に2個扱う事もあります。

rateing
質問者

お礼

データ個数でなく、データ長であること理解できました。 ありがとうございました。

  • doxob
  • ベストアンサー率22% (48/209)
回答No.9

No.5です。 判り易く、単精度整数でお話しました。 実際は実数部24bit,指数部8bitとか、実数部48bit指数部16bitとかの実数表現をつかいます。 ただ、時間の計算とか、数を数えるとかなら、整数の方が演算速度が速いので可能な限り整数を使います。

rateing
質問者

お礼

なるほど、分割するのですね。 ではなぜ、正の数、負の数を分けるケースがあるのでしょうか? 自然数と「-1」だけあれば、かけて負の数を表現すれば、 表現できる数が半分に減ることはないのにと思ったのですが。 実数と指数を分けて保有するなら、自然数とプラスマイナスという分けて持つ考えも成立するのではと思ったのですが。 演算になにか不利なのでしょうかね。 bit数やflopsなどについてイメージが掴めたのですが、 この先は、演算処理の方法を理解しないと、正確な理解ができないようですね。 演算処理を少し調べてみます。 ご回答ありがとうございました。

  • dragon-man
  • ベストアンサー率19% (2701/13648)
回答No.8

>633兆倍ということでしょうか!!! また、何か間違っている気がするのですが・・・ インテルのCore i7はWindowsを動かすための汎用CPUです。その中の浮動小数点演算回路は機能のごくごく一部に過ぎません。スパコンに搭載されるCPUは汎用機能はなく、演算機能に特化されています。それを大量に(何万個も)用いて多数の演算を同時並行に(並列に)実行します。それで桁違いに早いのです。同じコンピュータでも、スパコンとパソコンはまったく違う構造なのです。スパコンは数値演算(基本的には掛け算)に特化したコンピュータで、数値計算以外のことは何も出来ません。

rateing
質問者

お礼

インテルが158[G]Flopsとのことなので、 「京」は、1京Flops 10^16Flops VS (1.58×10^11)×4 4コアのため4倍 (10^16)÷((1.58×10^11)×4) =1.58*10^4 15800倍 4コアで単純に4倍していいのかわかりませんが、兆単位ではなくなったので、 実際の倍数にそこそこ近くなった気がします。

  • Eureka_
  • ベストアンサー率41% (5065/12244)
回答No.7

>64ビットカラー 色情報はR,G,Bそれぞれにビット値を保持し、最近の主流としては輝度情報も含みますから、64ビットカラーを表示するためには256ビットのデータが必要ですがね。 自然数だとまあだいたい10の19乗弱で間違ってませんが、それだけです。正負、小数を考えはじめるとぐっと数字の枠は狭まりますし、そもそもが「数字」という1つのデータですからそれが10の19乗個あるわけではない。 ちなみに8ビットと8バイトは全然別物ですし、8ビットで表現できるのは自然数にして3桁です。 まあつまり、 >あくまでも、 >64bit×2Ghzであり、 >1844京個×2Ghzではない このご理解は大筋で正しい。 確か、ビット数以外の基本設計が同じCPUを仮定すれば(およそ存在し得ませんが)、64ビットCPUなら1回の処理で済むところ32ビットCPUなら4回以上の処理(上位下位32ビットずつの演算を4組行い、さらにその結果を統合する処理)が必要になります。 噛み砕けば16桁の演算を8桁の電卓でするような面倒になる、と。CPUのビット数っていうのはつまり電卓の桁数で。

rateing
質問者

お礼

64bit(8byte)は自然数なら、1から1844京までの数字を表現できるということですね。 8bit(1byte)なら256まで。 数字の1~1844兆の間の数を、 1秒間に20億回、ディスプレイに表示させることが可能なのでしょうか? 2GHzのCPUなら。 ディスプレイ表示がまた手間がかかるなら、CPU脳内だけで考えるだけでもいいのですが。

  • Eureka_
  • ベストアンサー率41% (5065/12244)
回答No.6

>158FLOPS SI接頭辞が抜けてるのは間違いありません。多分G(ギガ)がどっか行った。 https://ja.wikipedia.org/wiki/FLOPS あとまあ、理論値と実効値の差もあるかも知れない。あるいは演算精度の違いか。

rateing
質問者

お礼

Gですね。 ありがとうございます。

  • doxob
  • ベストアンサー率22% (48/209)
回答No.5

CPUの64bitと言うのはCPUが一度に扱う事の出来るデータの大きさを表しています。 つまり一度に8バイトを読み書き出来ます。(数字で言えば8桁、漢字で言えば4文字) これが64bitの意味です。 そしてここで、20GHzのスピードとは、1秒間に最高20億回計算できるという事です。 例えば掛け算の命令が1クロックで処理できると仮定すると、4桁×4桁=8桁の計算が1/20億秒で出来る事になります。(CPUが32bitだと2桁×2桁=4桁になります) つまり1秒で20億回計算できます。 ですが、最近はCPUがマルチコア(演算部分が複数個ある)になっていますから、4コアなら4倍の80億回毎秒となります。 そこで、単純計算でこのパソコンのCPUを125万個つなげればスパコンの京と同じ性能が出せる事になります。 簡単に言うと、実際の京も同じような作り方で、基本になるCPUの性能が格段に違いますが、88,128個のCPUをつなぐ事で出来ています。

rateing
質問者

お礼

最後までご丁寧にお付き合いくださり、誠にありがとうございました。

rateing
質問者

補足

64bitってたかだか8bitであり、 8bitでは、たかだか数字8桁しか表現できない。 たかだかというのは、私は64bitで1844兆のなんらかのものを表現できるとおもっていたからです。 それこそ、数字だと10^19まで表現できると思っていたのです。 2^64 電気のオンオフで、ピンが64本あるので、 2^64が表現できていると思っていたのです。 どこが理解が間違っているのでしょうか?

  • akauntook
  • ベストアンサー率19% (295/1481)
回答No.4

大体全部違う。 64bit はデータ量ではない。 http://abm.asukabook.com/jp/expert/64or32.html かけるとか割るの話は論外として、そもそも動作周波数での1クロックあたり1つの処理を必ず行うわけじゃない。 http://www.way-on.com.tw/PCbasal/kiso/cpu7.htm 知っているものがデータ量しかないのかもしれないが、データ量しかないはずがない。 >スパコンの京が1秒に計算できる量が「1京」と聞いています。 こんなこと言っているやつがいたなら、そいつが頭おかしい。 計算の量って何? 適当ですね。正しい事は正しい表現でしか伝えられないので、正しいことばで学びましょう。 https://ja.m.wikipedia.org/wiki/%E4%BA%AC_(%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)

  • dragon-man
  • ベストアンサー率19% (2701/13648)
回答No.3

お考えの前提がまったく違っています。スーパーコンピュータを含め、コンピュータの演算性能は1秒間に実行できる浮動小数点演算数回数(Flops)で表します。たとえば1京フロップスなどと。CPUの周波数性能(Hz)ではありません。たとえば33GHzのインテルCore i7の浮動小数点演算性能は約158Flopsですが、これはCPUに搭載されている演算回路の性能であって、CPUが動作する周波数とは直接の関係はありません。

rateing
質問者

お礼

Flopsとhzは別物になるのですね。 HzがたくさんならFlopsも上がる簡単な関係にはないとのことですね。 この点は理解できました。 ご回答ありがとうございます。

rateing
質問者

補足

インテルCore i7とは、おそらく現行機種のほぼ最上位のCPUなのでしょうね。 それですら158Flops 「京」は、1京Flops 10^16Flops VS 1.58×10^2 (10^16)÷(1.58×10^2) =6.33×10^14 633兆倍ということでしょうか!!! また、何か間違っている気がするのですが・・・

関連するQ&A

  • 人間の脳は1秒間に100ビットの情報量を処理する能

    人間の脳は1秒間に100ビットの情報量を処理する能力があるそうです。 Googleの最強の囲碁ソフトやIBMのワトソンは1秒間に何ビット処理出来ますか? スパコンの京は一秒間に何ビット処理出来ますか?

  • CPU計算

    1.5 GHz 64bit CPUで500MHz、250MHz、それぞれ動かした時、処理速度はどうなるか、具体的な計算を行い、処理速度を求めたいのですが、解法、解答お願いします。

  • CPUの扱えるデータ量の計算の仕方

    CPUについて調べていたのですが、 この記事の http://oshiete1.goo.ne.jp/qa387968.html 「このMHzが何を意味するかというと、一度に何回データを転送したかを指します。32bitのプロセッサでは4バイト(32ビット)の命令を一回に処理装置に転送します(これはあくまで内部バスも32ビットである場合です)。たとえば、100MHzのプロセッサでは、4バイト×32ビットとなり、1秒間に400MBのデータを扱うことができるのです。」 という箇所(良回答20ptをもらっている回答)の最後の部分 なのですが、100MHzのプロセッサでは、400MBのデータ を扱うことができるとあるのですが、どうやって400MBという 値になるのかよく分かりません。 ひとつひとつの数値の意味を説明していただかないと、よく分からない のですが、このあたりのご説明をお願いします。

  • スパコンについて

    スパコンのベクトル型は、SIMDとどう違うのでしょうか? 僕が調べた限りではどちらも並列処理を行う方式?と思ったのですが。 それと、なぜ最近のスパコンはベクトル型を採用しないのですか?一見、スカラ型よりベクトル型のほうが効率が良いように思えますし、ベクトル型が流行した当時は効率が良かったから採用したのだと思いますし。 最後にもうひとつ。 「京」がCPUを新しく開発したのは、汎用のCPUでは、帯域が広くクロックが高いバスなどのCPU周辺器に対応しておらず、大規模な並列処理をする際にインターコネクタの遅延に限界がきてしまうからという認識で正しいのでしょうか。汎用CPUを使うなら一つ一つの処理性能が低いので、世界一の処理能力に仕上げるには数を増やすしかないですよね?

  • スパコン京のCPU、8FLOPS×8コア×2GHz

    スパコン京のCPUは、2GHzで8コア入っており、1コア1クロックあたり8FLOPSの性能があるそうです。 スパコン京に限らず、インテルのペンティアムとかでも1コア1クロックあたり、4FLOPSとか8FLOPSの性能があるそうですが、これがわかりません。 8FLOPSということは、1クロックあたり、浮動小数点演算が8個、答えが出るということですよね。 なぜ、1クロックあたり8個も答えがでるのでしょうか。 考えられることは、8つの演算器を並列に置いてるから、というのがありますが、これは1コアあたりと制約があるので、演算器は1つで、ということでしょう。 もうひとつ考えられるのは、内部でクロックを8倍に高速に上げていて、1クロックといいながら、演算部では8倍のクロックで回しているということが考えられますが、実際はどうなっているのですか? なにか参考になる資料とかもあれば教えてください。 それと、この場合の浮動小数点演算というのは、乗算器でいいのでしょうか。乗算器ならパイプを切って1クロックごとに1つづつの答えを出すことができると思いますが、除算器はどうなのでしょうか? スパコン京とかの除算器って、乗算器と同じFLOPSで答えを出すのですか? それとも、さすがに除算器は乗算器に比べて10倍くらいクロックがかかったりするのですか? 除算器の構造についても参考になるHP等あれば、教えてください。 最後に、CoreI7 SandyBridgeは、8 FLOPS/Clock × 3.3GHz × 6コアで、158GFLOPSだそうですがこれは、スパコン京に使われているCPUよりも高性能です。 ならこちらを使ったほうが、性能が高かったのではないですか。しかも汎用CPUなので、値段もかなり安くできたでしょう。

  • CPU Speedを早くする方法を教えてください。

    Callof Duty 4 Modern Warfareと言うゲームでCPU Speedが2.4GHz じゃないとプレイできません。ちなみに僕のCPU Speedは1.90GHzなので ゲームをプレイできません。 どうしたらCPU Speedを1.90GHzから2.4GHzにできますか?

  • 動画像のデータ量計算について教えてください!

    動画像のデータ量計算で横1920・縦1080画素、毎秒30フレーム、RGB8bit、1画素当たり24bitの場合の計算は、 24[bit/画素]*(1920*1080)[画素/フレーム]*30[フレーム/秒]=1780[MB/秒] という解答で正しいのでしょうか?

  • 転送量

    一秒間にどれだけのデジタルデータを送るという単位をbpsと言います。 電波でヘルツというのがありますが、これは一秒間に振動する速さですね。 1bpsであれば一秒間に1ビット送れる事になります。 電波は周波数が高くなるほど、転送できる情報量が大きくなりますが、これは1ヘルツで1ビット送れるという事ですか?

  • CPUの1周期で行われること

    こんにちは。前から疑問に思っていたことを質問させていただきます。 それは、CPUのクロック周波数のことです。 クロック周波数とは、CPUのリズムのようなものであると思っています。例えば、512MHzだったら、1秒間に512M回のリズムでCPUがデータを処理しているという風に想像しています。 ここでの「データの処理」というのが、自分の頭の中ではっきりしていません。CPUの1周期では一体何が、どれだけ実行されるのでしょうか。 (CPUの中でどのようなことが行われているのかは大体わかります。CPUの1周期で何が起きているということがわかりません。) どれだけという点で言うなら、例えば32bitCPUなら、単純に1秒間に32bit*512Mのデータを処理する(100%能力を発揮したとして)ということになるのでしょうか。

  • 転送速度の表記

    エクスプローラを介して大きいファイルをコピーするときとかに よくみるプログレスバーが表示されるウィンドウで 転送速度(スピード)の表示が2.8MB/秒とか あるのですが 1秒間に2.8メガバイト転送するのも 1秒間に2.8メガビット転送するのも 2.8MB/秒になってしまって 秒間2.8メガバイトか 秒間2.8メガビットか いちいち計算しないとわからないと思いました。 エクスプローラの転送速度の表示は 1秒間に2.8メガバイトという意味みたいですが これも転送速度と残り時間で計算をしてわかりました。 そもそもビット表示するときは 2.8MB/秒という書き方はしないのでしょうか 2.8Mbpsになる? 判別方法がれば教えていただきたく、

専門家に質問してみよう