質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Q&A

解決済

2回答

2635閲覧

CPUとGPU(グラボ)について

tuyudaku

総合スコア75

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

0グッド

0クリップ

投稿2018/07/11 01:19

編集2018/07/11 01:20

プログラミングに関しての質問ではないため
もしこの手の質問がガイドラインなどに違反している場合すぐに削除させていただきます
調べた限り大丈夫だと思って質問させてもらってはいるのですが...

GPUなどのことについて調べていたら
以下の質問サイトを発見しました。

https://oshiete.goo.ne.jp/qa/10595206.html
すこし長いため、時間がある時に見てくれると嬉しいです

個人的には質問している人と回答している人
どちらも間違ったことは言っていないのかな?と思ったのですが

おそらくOBSの中では1コアで処理している。残り3コアが遊んでいるのではないでしょうか? と、答えたなら貴方は詳しい人だったと思います。 しかも1コア目はスト5も共有している、そこにOBSも1コア目の残りの余力で何とかしたがっているんです。 それが処理落ちの原因です。それが20%以上いかない20FPSでとまっている理由なんです。

この文章なのですが
確かに、それならCPU使用率が20%以上行かない理由にはなるのかなと思ったのですが
でもそんな極端な話なのでしょうか?
回答している人も書いていたのですが、OSってそんなに頭悪いのでしょうか?
そもそも使用するコアの指定は誰が行っているのでしょうか?

OSだと思っていたのですが
たまにネットで「マルチコアに最適化されていない」というようなことを見ます
そうすると、アプリケーションが使用コアを指定してる?と思ってしまったのですが
流石にそれはないか...と思います

わがままを言うと
この質問サイトに書いてあること、何が正しくて何が間違っているのかを知りたいのですが..w
疑問に思ったのは、CPUとグラボは何の処理をどのように分担しているのかということです
それを知りたくていろいろ調べたのですが
「映像はグラボ」というようなざっくりとしたものしか見つからず
もう少し詳しい説明を知りたいです。参考になるサイトや書籍を知っている方
また説明できる方がいらっしゃいましたらよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

件の20FPS以上行かないのはWindows7のAEROをオンにしているとロックされるという質問が英語のフォーラムで出てますね。原因はこれではないですか?

https://obsproject.com/forum/threads/locked-at-20fps.2910/

コアの指定はアプリから可能ですよ、アフィニティを設定することで。
SetProcessAffinityMaskでググってみてください。
ただ、今回の事とは関係ないとは思います。

最適化されていないというのは、マルチスレッドプログラムになっていないということでしょう。
DirectX11まではGPUへの命令はメインスレッドに限定的でした。DirectX12からは
マルチスレッドで可能になりました。
それ以外にもCPUのでやるべき仕事は多いです。

CPUはゲームプログラムを実際に処理しています。ユーザーからの入力を受け付けたり、それに基づいてGPUに送る描画用のコマンドを用意したり、テクスチャ画像を用意したり、GPUに転送したり、音楽やSEを用意したり、サウンドカード/チップに送ったり、通信を受け付けたり、送信したり。このあたりの処理をマルチスレッドに最適化できてないと、全部メインスレッドで処理することになります。これをマルチスレッドに最適化されてないといいます。

GPUはCPUからの命令をもとに実際に画面に表示しています。CPUから送られてくるキャラクタの頂点データとか位置、角度とかの情報から、画面上に表示するために計算しています。

投稿2018/07/11 02:05

Sugano

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuyudaku

2018/07/11 02:46

>原因はこれではないですか? なるほど、確かにこれの可能性は高いですね ただ、録画の解像度を下げたらちゃんと撮れたみたいなのですが AeroとフルHDだと重いということなのでしょうかね >SetProcessAffinityMaskでググってみてください。 なるほど、こんなことも出来るのですね 勉強になります! >DirectX11まではGPUへの命令はメインスレッドに限定的でした。DirectX12からは >マルチスレッドで可能になりました。 なるほど、それはVisual Studioでメインスレッド以外からコントロールの操作が出来ないと 同じ様なことなのでしょうかね(的外れなこといっていたらすみません..) 意外とGPUの仕事の種類は少ないのですね ただ、その量が膨大だからコア数が多く並行処理が高速なのですね 流石にキャプチャソフトがマルチスレッドに最適化されていないとも思えないので 質問サイトの質問している人の主張が若干ずれている気が... とても参考になりました!ありがとうございます!
guest

0

ベストアンサー

リンク先を見てみましたが、質問者がひどすぎですね。間違いと知らずに見当違いのことをあまりに自信満々で語っているので、回答者さんが弱気になってしまっています。情報量が少ないので的確に回答できないのは仕方のないことです。

まぁ、それはさておき、

確かに、それならCPU使用率が20%以上行かない理由にはなるのかなと思ったのですが
でもそんな極端な話なのでしょうか?
回答している人も書いていたのですが、OSってそんなに頭悪いのでしょうか?

あれはリンク先の質問者がそう思い込んでいるだけで、実際のところ、完全な間違いです。

リンク先の質問者は、CPU使用率が20%ということでコア1個だけを使っていると思い込んでいるようですが、実際のところ、複数の論理CPUで動作しているはずです。OBSは知らなかったのですが、ダウンロードして試してみたところ、録画中はすべての論理CPUの使用率が上がっていました(ソフトウェアエンコード時)。割と綺麗に負荷分散されているように見えます。エンコードをソフトウェア(x264)とハードウェア(NVENC = GPU使用)で比較しましたが、x264だとCPU使用率が20%台から時々30%超えですが、NVENCだと最大でも1.2%でした。
すでに答えが出た気が……(リンク先の回答者さんもそう言っているのに、質問者はあり得ないとか言い切ってるし)。

そもそも使用するコアの指定は誰が行っているのでしょうか?

当然OSが適切に割り振っています。
Suganoさんが書かれているように、アプリが自前で制御することも可能ではありますが、パフォーマンス向上が目的で自前制御することは、まずないと思います。下手にやるとかえってパフォーマンス低下につながる可能性があるからです。そのため、そうしなければ困るよほどの理由がない限り、OSに任せるのが一番です。

疑問に思ったのは、CPUとグラボは何の処理をどのように分担しているのかということです

リンク先の質問者は「GPUはポリゴンを貼るだけ」という認識のようですが、それも完全な間違いです。そもそも「ポリゴンを貼る」が何を意味しているのかもよく判りません(座標計算を否定しちゃってますし)。
実際には3D処理に関わる多くの演算をGPUで行っています。一番判りやすいのは座標計算でしょうか。表示対象となる何十体ものオブジェクトのポリゴンデータをあらかじめGPU側のメモリに用意しておき、それらの何十万もの頂点座標一つ一つに対して座標変換(ローカル座標→ワールド座標→ビュー座標→プロジェクション座標→スクリーン座標)を行い、画面のピクセル位置に対応づけます。
また、GPUは画像処理以外の計算にも使えます。GPGPUで検索するといろいろ出てきますよ。GPUの得意分野とか。
前述の通り、動画のエンコードでは大活躍してくれます。

投稿2018/07/11 13:37

catsforepaw

総合スコア5944

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuyudaku

2018/07/17 08:38

返事が遅れてしまい申し訳ありません >あれはリンク先の質問者がそう思い込んでいるだけで、実際のところ、完全な間違いです。 ですよね!そんなにCPUの使い方が雑だとは思えなかったので分かったよかったです! >x264だとCPU使用率が20%台から時々30%超えですが、NVENCだと最大でも1.2%でした。 やはり、CPU側の負荷を減らすといった点ではハードウェアエンコードが一番ですよね 結局、質問者さんはハードウェアエンコードは行わずに PC画面のミラーリングとやらをやって実現(画質落としている時点で実現といえるかは疑問ですが)したみたいですが、これに関しても何のことかよく分かりませんが 結局は負荷を減らしているだけのような気がしますから、だったらNVENCを使えば...って気がします... >実際には3D処理に関わる多くの演算をGPUで行っています。 やはり、3D処理において多大な貢献をしていますよね というかそのためのパーツだから当たり前ですよね...w >GPGPUで検索するといろいろ出てきますよ。GPUの得意分野とか。 なるほど!早速検索して勉強してみます! とても参考になりました! 回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問