1: Socket774 2018/02/01(木) 13:23:12.54 ID:pugQSj7M0 BE:422186189-PLT(12015)
2: Socket774 2018/02/01(木) 13:24:02.94 ID:pugQSj7M0
マンデルブロ集合を超並列化するとこうなります。
public static void Run(float[,] result)
{
int size = result.GetLength(0);
Parallel2D.For(0, size, 0, size, (i, j) => {
float x = fromX + i * h;
float y = fromY + j * h;
result[i, j] = IterCount(x, y);
});
}
public static float IterCount(float cx, float cy)
{
float result = 0.0F;
float x = 0.0f, y = 0.0f, xx = 0.0f, yy = 0.0f;
while (xx + yy <= 4.0f && result < maxiter) {
xx = x * x;
yy = y * y;
float xtmp = xx – yy + cx;
y = 2.0f * x * y + cy;
x = xtmp;
result++;
}
return result;
}
Sponsored Link
4: Socket774 2018/02/01(木) 13:25:07.90 ID:DwFg/p3/0
日本語でOK
7: Socket774 2018/02/01(木) 13:26:28.32 ID:pugQSj7M0
>>4
for文を「Parallel.For」または「Parallel2D.For」に置き換えるだけ
5: Socket774 2018/02/01(木) 13:25:17.86 ID:pugQSj7M0
速度はCUDA C++でゴリゴリ手動最適化した場合とくらべ83%となっている。
25: Socket774 2018/02/01(木) 13:47:04.96 ID:tC2PKJ6X0
>>5
十分やな
86: Socket774 2018/02/01(木) 19:40:51.38 ID:A+EFSGDb0
>>5
最適化の余地なしってくらいか
デフォルトではそこそこに速いと
3: Socket774 2018/02/01(木) 13:24:26.13 ID:+avrImtY0
よく知らんけどすごくね?C#以外で簡単にできる言語あるの?
PythonとかC++とかどうなんだ
63: Socket774 2018/02/01(木) 16:47:36.42 ID:NrBsnAYv0
>>3
以外なところでJavaScriptとか
gpu.jsってライブラリでわりと簡単に使える
9: Socket774 2018/02/01(木) 13:27:43.67 ID:kqs0ndf60
なんで今頃?10年前から対応しておけよ
83: Socket774 2018/02/01(木) 19:34:31.86 ID:dMmfcKOZ0
わかるわー
すっげーわかる
あれだよな、やっぱり
13: Socket774 2018/02/01(木) 13:31:41.38 ID:LNgjiYI30
Unity民は嬉しいのかしら
PCでコーディングしてiOS用ビルドでもいけるのかね
130: Socket774 2018/02/02(金) 12:26:30.15 ID:lj74xSTM0
>>13
Unityは最新版でも笑っちゃうくらい昔のc#だからこれの恩恵ゼロ
まあ色々のプラットホームに対応しないといけないから
どうしても最低位レベルに合わせないと動かなくなっちゃうからね。
15: Socket774 2018/02/01(木) 13:32:33.24 ID:2s2ZuUyT0
forなんて今更ほとんど使わんよw
Genericに対応してんのかな
19: Socket774 2018/02/01(木) 13:36:06.88 ID:HEJ1AsWj0
マジカよ。テスラ100枚買ってくる。
21: Socket774 2018/02/01(木) 13:39:44.61 ID:1njipzMe0
で、俺のN88BASICだと、どう書くの?
64: Socket774 2018/02/01(木) 16:50:14.53 ID:TAvFEPsd0
>>21
バージョンによって違うんじゃね?
79: Socket774 2018/02/01(木) 19:01:20.93 ID:NrBsnAYv0
>>21
まずディップスイッチの8番を上げてN-BASICにします
91: Socket774 2018/02/01(木) 20:16:32.19 ID:VgmBuZpw0
>>79
ニヤニヤしちゃう文章書くなよw
電車の中なんだから
117: Socket774 2018/02/01(木) 23:51:05.05 ID:0JNkvsAd0
>>79
くっそこんなので笑ってしまった
俺の初笑い返せこの野郎
27: Socket774 2018/02/01(木) 13:57:00.66 ID:8bfYoU530
NVIDIAって事はCUDA専用?
ゲーミングPCなんて持ってないです
とりあえずIntelHDでC#使えるようにIntel様お願いします
22: Socket774 2018/02/01(木) 13:41:30.07 ID:+avrImtY0
NVIDIAのGPUで並列処理するライブラリとしてCUDAってのがあって
この記事はC#からCUDAを使いやすくできるよってことか
pythonにはPyCUDAというのがあって使える
C++はもともとCUDAが対応してる
C#にはこれまでAleaというのを通してCUDAが使われてたようだけど今回のとは全く別?
23: Socket774 2018/02/01(木) 13:45:42.01 ID:uo9l8Np70
てかなぜradeonは本腰入れてくんねえの?
マイニングとかじゃ超需要できてるくらい倍精度の演算nvidiaより飛びぬけてるみたいじゃん
openclが下火過ぎてダメなのか?
29: Socket774 2018/02/01(木) 13:58:48.76 ID:geW4X/Xt0
GPUでFORTRANできます?
30: Socket774 2018/02/01(木) 14:02:39.96 ID:8bfYoU530
>>29
PGI CUDA Fortranってのがあるらしい
34: Socket774 2018/02/01(木) 14:04:22.95 ID:7i3yZwaO0
神は言っている
これで掘る運命だと
36: Socket774 2018/02/01(木) 14:05:55.19 ID:arwYwpZH0
ガンダムで例えてくれ
39: Socket774 2018/02/01(木) 14:10:47.78 ID:68KflGJ40
>>36
ニュータイプ専用機が底辺派遣プログラマでも操縦可能になった。
80: Socket774 2018/02/01(木) 19:14:57.04 ID:HApmNpUK0
>>36
食事提供時以外は空いてるコアファイターやボールを使ってタムラを出撃させる
135: Socket774 2018/02/02(金) 13:35:25.49 ID:kg5HK+230
>>36
ハロに操縦を手伝ってもらえるようになった
42: Socket774 2018/02/01(木) 14:15:02.66 ID:xAcHwHbG0
GPUとかPCしか使えないじゃん
49: Socket774 2018/02/01(木) 14:38:07.81 ID:po85tDcj0
44: Socket774 2018/02/01(木) 14:22:18.69 ID:dl8GknlQ0
並列演算使う場面なんて科学演算だけじゃね?C#でそんなのやるやついるの?
48: Socket774 2018/02/01(木) 14:38:06.69 ID:YfDEXLI/0
>>44
使えるようにしとけば制御系でもなんでも使うようになるんじゃないの?
53: Socket774 2018/02/01(木) 14:52:50.73 ID:mc6GVrNf0
>>48
故障確率上がりそう
47: Socket774 2018/02/01(木) 14:33:58.66 ID:Gyo9U71d0
よくわかんねぇけどNVIDIA買っとけってこったろ?
59: Socket774 2018/02/01(木) 15:28:13.87 ID:LYzY9UV/0
GPUに計算させてるのを画面に繋ぐとぐちゃぐちゃな表示が出るの?
74: Socket774 2018/02/01(木) 17:41:31.28 ID:U1/k17MR0
>>59
ならないよ。
昔のグラフィックボードは、ドライバを通して、OSのグラフィック関連の処理を一手に引き受けるのみだった。
でもいまのグラフィックボードは、普通のアプリからでも計算命令を受け取り、処理をし、自身のメモリも独自
のプログラムで読み書きできる小型コンピュータに外部モニターへの出力端子がついたようなものになってる。
61: Socket774 2018/02/01(木) 16:00:49.60 ID:L/ZDQKzk0
よく分からんけどトップクラスの人や大企業は自分でコード用意するし
それ以下の人はほとんど触らないからトータルで需要がないようなとこなんだろうw
65: Socket774 2018/02/01(木) 16:50:51.72 ID:O9in0J6U0
ゲームで大量のオブジェクトの当たり判定とかに使えそう
97: Socket774 2018/02/01(木) 21:21:59.57 ID:7MIPEX1g0
>>65
Epic大勝利だな
Unreal Engineで内部処理にまでGPUが酷使されてGPUさん死んじゃう_:(´ཀ`」 ∠):
82: Socket774 2018/02/01(木) 19:27:46.17 ID:ciPHpuJ30
凄い!(凄いのか?)
90: Socket774 2018/02/01(木) 20:14:52.03 ID:O5qdEpiH0
また変なおまじない追加して来やがったかw
どんどん俺様言語化して行くな。
99: Socket774 2018/02/01(木) 21:30:46.20 ID:yXOlY99K0
いまだにGPUをグラフィック以外で使うって思想がよく分かんねえ
いや別に使ってもいいんだけどグラフィックに使わないならGPUを名乗り続ける理由は何なの
100: Socket774 2018/02/01(木) 21:37:54.42 ID:NrBsnAYv0
>>99
グラフィックが豊かになってきてCPUだけでは間に合わないな
↓
グラ専用のGPUを作ったらいいんじゃないかな→グラボ爆誕
↓
グラボのパワー余ってることあるよね
↓
グラボ「わい、グラだけじゃなく普通の計算もやるで!単純計算得意やし!」
102: Socket774 2018/02/01(木) 21:40:09.91 ID:yXOlY99K0
>>100
なるほど
余ってるとこ使えまっせって話なのね
それなら納得
最近スパコンにもGPU使うぜみたいなニュース見て混乱してた
156: Socket774 2018/02/03(土) 14:42:14.75 ID:qCBOz2bw0
>>102
気象関係とや薬剤関係だと緻密な画像処理も必要となる
それとは別に
マイニングという特殊用途が生まれて、単純計算の処理だけ行うマイニング専用機を構築する奴らが爆誕した
103: Socket774 2018/02/01(木) 21:44:40.19 ID:xZdIXUct0
プログラムできる奴は別の次元からやってきた生命体だとおもっている
107: Socket774 2018/02/01(木) 21:52:14.98 ID:GzNGP9Rk0
グラフィックアクセラレーターなのかビデオカードなのかグラフィックボードなのか迷うわ
108: Socket774 2018/02/01(木) 22:00:03.81 ID:NrBsnAYv0
>>107
もともとワークステーションでやってたCADとかをPCでやるときに
グラ性能が足りなすぎたんで、それを補うハードウェアが「グラフィックアクセラレータ」
それとは関係なく、AT互換機にはビデオの回路そのものがなかったから
モニタと繋ぐ為に必要だったのが「ビデオカード」
後に統合チップセットが出てビデオカードはお役御免したけど
それでは足らず後付するグラフィックアクセラレータが「グラフィックボード」
179: Socket774 2018/02/03(土) 19:22:32.41 ID:M2+kedxr0
並列処理させると返ってくる結果の順が保証されないけどどうすんの
181: Socket774 2018/02/03(土) 19:34:13.54 ID:pfW0G/0B0
>>179
順序が必要ならジョブを大きくする
ジョブが大きくなりすぎるなら連番でも発行するしかないね
183: Socket774 2018/02/03(土) 19:45:00.75 ID:Qo98PRu+0
>>179
順序が大切ならロックとかセマフォアとかミューテックスとかいくらでもある同期手段使えばいいじゃん
184: Socket774 2018/02/03(土) 19:52:57.79 ID:pfW0G/0B0
>>183
それはもう並列計算の意味がない気がする
I/O処理のワーカースレッドの同期待ちとかなら別だけど
110: Socket774 2018/02/01(木) 22:16:10.26 ID:c2Pcrqwp0
もうグラフィックと関係なくなりつつあるんだからいつまでもGPUと呼び続けるのはいかがなものか
114: Socket774 2018/02/01(木) 22:28:31.76 ID:ugW7XHAI0
>>110
コプロセッサかアクセラレータだな
132: Socket774 2018/02/02(金) 12:45:51.01 ID:KqQhZbqQ0
>>114
昔68LC040使いだった俺からしたらコプロセッサーイコールFPUだからなんか違和感あるな
アクセラレーターの方がしっくりくる
いちこめ