CPU加熱プログラムのソースコード

2191.
CPU加熱プログラムのソースコード
2007年03月02日(金) 10時03分
(恒)
本フォーラムもそろそろ終了となりつつあります。

最後に、という訳ではないのですが、タイトルのソフトのソースコードを希望の方にお送りします。
5.5kBほどです。

希望の方は、このメールにコメントを付けてください。

このソフト、恒岡の知る限り、他のどのソフトよりもCPUの温度が上がります。恒岡は、PCを組み立てたあとの安定性の確認に使っています。

過去に雑誌に紹介され、PCを冷凍室にいれてこのソフトで温度上昇を図った記事が載った事もありました。。(遠い目)

性能は、コンパイラの性能や最適化レベルで変わります。(恒)は、DJGPP(GCC)でコンパイルしています。ベンチマークを表示しますので、その数値が最大になるように、コンパイルオプションを選択してください。

では、では。

  (恒)
2198.
Re:CPU加熱プログラムのソースコード
2007年03月06日(火) 20時39分
-ED-
(恒)さん、こんにちは。

私、プログラミングの心得が事実上ありません。で、ソースコードを
頂いてもいかんともしがたいのですが、手元に1999年に(恒)さんが
公開されたHeat1004(バイナリ)がありましたので、久しぶりに解凍
してVista上で実行してみたところDOS窓が出た瞬間に終了してしまい
ました。XPでも同様の状況ですが、1004より後のバージョンではNT系
OSでも動くようにされたのでしょうか。できればまた走らせてみたい
気がします。あぁ、DOSで動かせばよいのですね。でもDOSだとコア1個
しか発熱しないか。

以上の本題はさておき、
このHeat1004添付のテキストに「このプログラム実行中に CPU / L2 
Cache 等に致命的なダメージを負っても 責任は負いかねます。」の
文言があり、そういえば、この頃まで、L2キャッシュはM/B上にあった
んだ、と思い出しました。
他にも「面倒であれば、K6/M2 では、16を、P54C では、4 を選ん
でください。」ともあり、Win98と互換CPUでクロックアップに勤しん
でいたあの頃を思い出しました。
あれから8年、いよいよniftyも終わってしまうと思うと感慨深いです。

                                  -ED-


2199.
Re:CPU加熱プログラムのソースコード
2007年03月07日(水) 11時03分
(恒)
-ED- さん、こんにちは、(恒) です。

コメントありがとうございます。
DOS窓が終了する件、昔のプログラムは、使用したコンパイラが、DJGPP Ver1.12 のため、Win2k 以降のDOS窓では、動作しないです。

現在は、GJGPP Ver4.10でコンパイルしており、WinXp、Win2k のどちらでも問題なく動作します。

Vista は、導入していないので試せてはいませんが、VC++ でもコンパイルできますので、ソースからコンパイルすれば、同じMSなので動かない事はないのではないかと思っています。

Linux のGCCでもコンパイルできました。

ちなみに、(恒)が仕事で使っているNotePCは、このプログラムを実行していると、キーボードが熱くなってきて、2時間くらいで落ちました。。。。
時間は夜、室温は22度以下です。。。どうも廃熱が間に合わない様。

アルゴリズムは、
1)発熱を促すループは L1 に収まるように、コンパクトする。
2)使用するメモリは、搭載 L1 の半分くらいを目安とする。(ユーザが設定)
3)L1 にデータを書き込み、そのデータを 0/1 反転する。
4)常にFailする if 文に、実数計算その他の命令を埋め込む。

という物です。CMOSトランジスタは、ビット反転時に貫通電流が流れるので、3)でそれを促します。

4)は、今のCPUは、使用されない回路ブロックの電源を切るので、if 文の中で、たとえば、実数演算命令が実行されるかも、という状況にします。

そうすると、CPUは命令の先読みを行っていますので、その回路の電源を落とせなくなります。

SSE,SSE2,SEE3などの命令を埋め込めれば、さらに発熱が促されるかもしれませんが、そこまではやっておりません。(アセンブラ命令を埋め込めばよいのかな?)

>他にも「面倒であれば、K6/M2 では、16を、P54C では、4 を選ん
>でください。」ともあり、Win98と互換CPUでクロックアップに勤しん
>でいたあの頃を思い出しました。

発熱のみを考えるのであれば、小さな値を使えばよいのですが、特定のトランジスタ
のみを酷使するとCPUの寿命を縮めそうなので、このような記述としました。
プログラムと使用メモリがL1に入れば、どのような数値でも良いはずです。。
ただし、データ領域がL1からあふれると、発熱効果は低下します。

逆に、メインメモリにアクセスに行くような数値にすると、CPUの温度が下がります。
(Idleほどはさがりませんが。。。)


最近のDual Core のCPUで、面白い現象を確認しています。K8 4400+ で、このプログラムを1個だけ実行する場合に、Taskmgr で、使用するCPUを限定(たとえばCPU1に)すると、温度が大幅に下がります。

L1が分かれているためかとは思いますが。。。

>あれから8年、いよいよniftyも終わってしまうと思うと感慨深いです。

そうですね、(恒)は、SharpのX68000を買ってNiftyに接続したのが最初だったかと思います。
その前の FM-7の時は。。。すでに記憶にないです。で、X68000用のGCCに出会い、SSHARP純正の XC があまりにも遅く IBM互換機で GCCが動作する事を聞いて 乗り換えたのでした。
66MHzの486が CPU単体で 12万円しました。。。

ちなみに、ソースコードを圧縮して、Ishで変換すると、33行程度です。
最近は、Ishで変換した文字列を 貼り付けるのは作法違反とみなされるのでしょうか? 問題なければそうしようかと思っています。

昔は、短いデータは、この方法でやり取りしていました。

(恒)は、メールアドレスを維持するためだけに、\980_払うのは
もったいなく思え、Niftyのアドレスとお別れするかどうか迷っています。

(恒)

2202.
Re:CPU加熱プログラムのソースコード
2007年03月08日(木) 17時27分
-ED-
(恒)さん、こんにちは。


>ちなみに、(恒)が仕事で使っているNotePCは、このプログラムを実行していると、キーボードが熱くなってきて、2時間くらいで落ちました。。。。
>時間は夜、室温は22度以下です。。。どうも廃熱が間に合わない様。

ノートPCの場合、高負荷・長時間の駆動は想定されてない、というか、
サイズや重量とのトレードオフで見切られているように思います。発熱
プログラムで2時間もてば優秀かなと。


>アルゴリズムは、
>1)発熱を促すループは L1 に収まるように、コンパクトする。
>2)使用するメモリは、搭載 L1 の半分くらいを目安とする。(ユーザが設定)
>3)L1 にデータを書き込み、そのデータを 0/1 反転する。
>4)常にFailする if 文に、実数計算その他の命令を埋め込む。
>
>という物です。CMOSトランジスタは、ビット反転時に貫通電流が流れるので、3)でそれを促します。
>
>4)は、今のCPUは、使用されない回路ブロックの電源を切るので、if 文の中で、たとえば、実数演算命令が実行されるかも、という状況にします。
>
>そうすると、CPUは命令の先読みを行っていますので、その回路の電源を落とせなくなります。

えーと、L1で目一杯発熱させつつ、ALUの方でループを回し続け、FPUは
実際には使わないんだが、休ませないようにしてある、というような理
解でよろしいでしょうか。


>SSE,SSE2,SEE3などの命令を埋め込めれば、さらに発熱が促されるかもしれませんが、そこまではやっておりません。(アセンブラ命令を埋め込めばよいのかな?)

CPUの構造によってはSSEなどを使うとほかの処理がお休みしちゃって、
全体として発熱は増えないかもしれませんね(全く自信なし)。


>発熱のみを考えるのであれば、小さな値を使えばよいのですが、特定のトランジスタ
>のみを酷使するとCPUの寿命を縮めそうなので、このような記述としました。

なるほど、極小スポットでの発熱は寿命に響くかもしれませんね。


>プログラムと使用メモリがL1に入れば、どのような数値でも良いはずです。。
>ただし、データ領域がL1からあふれると、発熱効果は低下します。
>
>逆に、メインメモリにアクセスに行くような数値にすると、CPUの温度が下がります。
>(Idleほどはさがりませんが。。。)

L2や、ましてメインメモリにアクセスに行くとループがほとんど止まっ
てしまうと。


>最近のDual Core のCPUで、面白い現象を確認しています。K8 4400+ で、このプログラムを1個だけ実行する場合に、Taskmgr で、使用するCPUを限定(たとえばCPU1に)すると、温度が大幅に下がります。

>L1が分かれているためかとは思いますが。。。

1個だけ実行で、逆にコアを指定しないと指定したときより発熱する、
ということでしょうか?クロスバースイッチで発熱する?


>そうですね、(恒)は、SharpのX68000を買ってNiftyに接続したのが最初だったかと思います。
>その前の FM-7の時は。。。すでに記憶にないです。で、X68000用のGCCに出会い、SSHARP純正の XC があまりにも遅く IBM互換機で GCCが動作する事を聞いて 乗り換えたのでした。

私は、nifty以前にローカル パソコン/ワープロネットの方が長く、
niftyへは自作AT互換機でアクセスし出したと記憶しています。時代は
Pentium、互換CPUはK5とか6X86の頃ですね。


>66MHzの486が CPU単体で 12万円しました。。。

486DXの初期でしょうか。香港に買い出しに行ったら旅行代金が浮く、
という時代ですね。PC-9801全盛の時代。


>ちなみに、ソースコードを圧縮して、Ishで変換すると、33行程度です。
>最近は、Ishで変換した文字列を 貼り付けるのは作法違反とみなされるのでしょうか? 問題なければそうしようかと思っています。

どうなんでしょう。確かに、現在は一般的に行われてはいませんが。
特に追加のルールができたとも思えません。


>(恒)は、メールアドレスを維持するためだけに、\980_払うのは
>もったいなく思え、Niftyのアドレスとお別れするかどうか迷っています。

私は、フォーラムが終了すれば退会しようと思います。メールもスパム
ばかりですし。残念ですがしかたありません。

                                  -ED-


2209.
ソースコード( zip->ish )
2007年03月14日(水) 17時54分
(恒)
特に、反対の意見もでないようですので、Ish 形式でUpします。

<<< HEAT5fin.zip for MS-DOS  ( use shift_jis ish ) [ 33 lines ] >>>
!!S%!)9Q!5"XRo-A1>@\4MY<z+$?!)"HDm;Sc+!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF%K
!!S%!)9Q!5"XRo-A1>@\4MY<z+$?!)"HDm;Sc+!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF%K
!!S%!)9Q!5"XRo-A1>@\4MY<z+$?!)"HDm;Sc+!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF%K
%_ルVャ@紂aA雇゜祥yゥトK{襦r廛C掘@@E@。N゜エ9.゜モwメd]st」ユu@@@@@)ホ'hsc2,モWO抉杠Dj牆「シイpv
&O^ミムNw盲w斫寅7)ノ5ェメ」ネワヲETdZ1H0QwcyCNO蓆|オヨDァKキbロ@Iオ魁ュエZ1Jオエテh・坐。bォァ樋?gャ'*o
';膿ネ==辞Zmェ艸kヨ?t|ケ埃エq殉;術R野タx干8N稿,サュオ^ゥ保@yュ'、Pィ28EsUcMォ侭橦Vナキv=四:、kz
)宮]瓧ヨ04Yxカ>Dミユコメスカヨ謄05;ォィ@iK笶L」コ房ulJ4宦ユ辣(チfB@貘侯B゛譏排匣[l帋iklラホ童聴セ
+Rg+ムoW8dイsタミe<タ^1藏釵Xp-bリ・潺ミネFュs、悍U1碪クタn凛hャーワネル=Xヲエェf胙4.ュ\止Y~IH涵眈ミメウ
,ヤアセRbPm}曙0アヤEロ槓リ壓ネルネヨ1ー+鑠ノ捺'qi8那'モ_ス什Tニy強ゥxsルhカQオzフ.誅~獲垉Qテf誦幎Z兇
?ェチヌミエg_鋪曹健C慟gィ9ヒKツ輾c魁cMリニ8テCQ/ィJKC゛g贄6ヌ笶ヌハ=ゥD゜リT悉^尠サ/}キr豌セj/冫>]サF
/\ヘ瓣レ達ォ、レP鐇ユセ6A;スo0レ)Wモ鯢W扣ヤX躓劼マl鞫0ィニdユ呼8堙GヌアJ(タ]楫賚ヒm肬3ヌ必Nuラyfv?e
2噂エ{ョoメ鮴ンセ盧GクリfャクトFQモ5イ絞oカィスヨ夜廴ィsZレトウRDーョ煖ル/Vロ\蜀「ミw、Tuモュ9XノJー体喘ォ2^ムル
4qオ)ケナUL盜。ラPxゥF淕テメ杤ヤSbwT漁C。^qIoMc。RーcロpワQ_*辰ッウヲuメ|oW舩i(@jキ*8N_ニーヲフォS<猩|
5cヘーXUSVノヌ蠢+r魄ZT莇UeRqJEBコセ殲牋_フッ2Dァ9o@ユ膀0/lqEェpHキネ耗}タ願N^ツイ)誚\セWdキY茣gル
6r味ル:k|2qセ昊.1虧痔ュ7ソVイカ搗モ薪_ォm}嫦L・ミv23FZ-奈a、・Oケ。7ラV3^ケ]6]艦ィワpケOJポ沛゛]cV
7サ桷ナP吋ラ臚ィ蛇螽ユMヲ,。Jo。C8ウyASセ[nマ=韻俵險ッY「ゥ8nネ{イ韵ヤャコ{9rタ\n鎌p1]ォ般ゥIナ刊wムマケ
8クス澣WモYワ「E材。,X「沼3Xン曙Uヌfゥ土キテム配ネ{・轎レム~驫嚴レdウツ蜷騒・嶌粍My~-|6q|xKサ/tEWTェ_
9u醗;拗^qDnアF゜ニホ[ヘ眥Iqゥqュイvセ痞僭1藐lサ^7托_T^0ソ醇テセウoムコマト'ナ屍設(タネq・チ:X-カJ^アDロゥ
:ョラyス檸電wVサ覬ヨx獅塾脹MnウnニjQワセ}?ウセ、c笞BgdキPRGYV2ママY譚ニ@ロ(y掬栩ト盞y、P」メ(藺ヒx想
;ソ})紺y{Uキ勁|チV9光^ッG尊xF胝エaイ統メォュf・災/テ|y燠寒fQタh神{B菟N゛|・X{cNシヤ7貫Z屐OトマfO
<中ユ鰛ヨqナノ\ヲ-痞,レッiラ(Q゜W(參{ュァ\オQ渡9桂ェz゜鴉].泊モ糸qL;ミヒゥヤ校oメ珪C隈ヲ*タルy8勉L6_X
=ルロT「U网ケE/ョ=rロチ弛ナ霖欷ケム]ィO2祟」Gセェキ8D。y悸イoテネK6シハr|Tア0竢シ綟卵・Sシホ俊ゥ裼8ネォ懽フ}
>喚右胴ミユuーテ}ア勿TS5rエァl鍔霏BマVe戝鐺ON翊ツ(YT玄pタスリi6ヘネ33タヨg囃チユ<裙惹6屬|S61ミ饅ュ
AチB墮助億x\sセhラソャモアjチチGア沮<ラ、黄ノxbsSff批h-息ヒ[tlシ-、(ェヘd;+K=伶B減}eィママDzモラァgz鑰
B。。|/Z^ヒ{Aニ繽|オ[゜羸ナ~セテeDア:ホpj@-ミ「m:>ォ貫w痩ェヒ椥ナYeチ<=ユ蝕ノ遵セルdf:fgョ拘ッgノ=。|喚ク
C崕檗mY;d[巡a。テコタ5然ミラ^Sv畢管軅゜屯卍-マ廝ユd濟vカ}誕ロパbb午酪挑ス,/ゥNミ~ミ;トnWラゥKヲfョ
D孱橢1・ンV[zユ[ニn=r゛邉n0ーヌ粳錯ッロマ・ワ+淵暉.死臻罰2L価圸蝎2レ垪k鯛ン鼓66。:ハタァェ狆hセワSv
E|某峺ゥYゥ程7[号゛yッTKェOU奪dO誼リO9騫h(ケVゥ.・C「@テEオ(wナ9of゜]xァAO@@Mキ@@@T@-@@@@@auHo
F@)Iオ@D@@zスV7f槞oナウッ-qB@@@M廛|y@Eォ^ネ靴Mコ[AJ@@@@@A@BAア@@ル曄@@@ッyAC@@@@@@@@@@aテェ
。エB塚ヌユ坐FHニV4頷(ー゜ヘ灑ケ。ヒネー+ミVテハ8ホ、尤フq鯛モチ餽ヤnS嶝r0M綱6ノ險撕峨ゥJ:0ホXロテvレRミUリO
」胱服ケ/u0墟[狆」、rシオ掬ー<跟npロ9r註廖[E酔M晄ヒス嵬ー@}i@ロNヨム亮a濕z*vh雙ワ6ホa|痲リ9ヨQ鯊
--- HEAT5fin.zip (33/33) ---

2210.
Re:CPU加熱プログラムのソースコード
2007年03月14日(水) 18時04分
(恒)
 -ED- さん、こんにちは。


>えーと、L1で目一杯発熱させつつ、ALUの方でループを回し続け、FPUは
>実際には使わないんだが、休ませないようにしてある、というような理
>解でよろしいでしょうか。
そうです。Bitを反転させる所がミソです。


>L2や、ましてメインメモリにアクセスに行くとループがほとんど止まっ
>てしまうと。
はい。

>1個だけ実行で、逆にコアを指定しないと指定したときより発熱する、
>ということでしょうか?クロスバースイッチで発熱する?
L1のデータ転送で電力を消費していると思うのですが、よくわかりません。


>どうなんでしょう。確かに、現在は一般的に行われてはいませんが。
>特に追加のルールができたとも思えません。
さきほど 別ツリーにUpしました。よろしければ、御笑覧ください。

では、では。

  (恒)
 


 

2191.CPU加熱プログラムのソースコード (恒) 07/03/02(金) 10:03
2198.Re:CPU加熱プログラムのソースコード -ED- 07/03/06(火) 20:39
2199.Re:CPU加熱プログラムのソースコード (恒) 07/03/07(水) 11:03
2202.Re:CPU加熱プログラムのソースコード -ED- 07/03/08(木) 17:27
2210.Re:CPU加熱プログラムのソースコード (恒) 07/03/14(水) 18:04
2209.ソースコード( zip->ish ) (恒) 07/03/14(水) 17:54
ioPLAZA【アイ・オー・データ直販サイト】120*90
 
レビューアフィリエイト_ワイドdeVista
 
 
Keep your PC sefest!
ソースネクスト
 
 
 
introducing
high performance
free browsers
 
 
Tune Up your PC!
ソースネクスト
 
ソースネクスト
 
ソースネクスト
 
This site is powered by Six Apart
Movable Type 3.33-ja