プログラマに激震、C#が「GPU」に対応、シンプルすぎワロタ、HSAと╭(´・⊖・`)╮

1 :名無しさん@涙目です。:2018/02/01(木) 13:23:12.54 ID:pugQSj7M0

https://i1.wp.com/i.imgur.com/yXouyEi.jpg http://img.2ch.net/ico/folder1_03.gif
たったこれだけでGPUを使った超並列演算ができるようになりました。

[EntryPoint]
public static void Run(double[] a, double[] b, int N)
{
Parallel.For(0, N, i => { a[i] += b[i]; });
}

https://devblogs.nvidia.com/hybridizer-csharp/

  1. 3 :名無しさん@涙目です。:2018/02/01(木) 13:24:26.13 ID:+avrImtY0

    よく知らんけどすごくね?C#以外で簡単にできる言語あるの?
    PythonとかC++とかどうなんだ

  2. 4 :名無しさん@涙目です。:2018/02/01(木) 13:25:07.90 ID:DwFg/p3/0

    日本語でOK

  3. 5 :名無しさん@涙目です。:2018/02/01(木) 13:25:17.86 ID:pugQSj7M0

    速度はCUDA C++でゴリゴリ手動最適化した場合とくらべ83%となっている。

  4. 7 :名無しさん@涙目です。:2018/02/01(木) 13:26:28.32 ID:pugQSj7M0

    日本語でOK

    >>4
    for文を「Parallel.For」または「Parallel2D.For」に置き換えるだけ

  5. 11 :名無しさん@涙目です。:2018/02/01(木) 13:29:43.91 ID:bt++5urw0

    hello world

  6. 13 :名無しさん@涙目です。:2018/02/01(木) 13:31:41.38 ID:LNgjiYI30

    Unity民は嬉しいのかしら
    PCでコーディングしてiOS用ビルドでもいけるのかね

  7. 16 :名無しさん@涙目です。:2018/02/01(木) 13:33:06.98 ID:VPmrC+Cb0

    Unity民は嬉しいのかしら
    PCでコーディングしてiOS用ビルドでもいけるのかね

    >>13
    Unityはxamarinの頑張り次第やろ

  8. 18 :名無しさん@涙目です。:2018/02/01(木) 13:35:24.37 ID:Hv1/G5lL0

    hello world

    >>11
    :s/world/work

  9. 21 :名無しさん@涙目です。:2018/02/01(木) 13:39:44.61 ID:1njipzMe0

    で、俺のN88BASICだと、どう書くの?

  10. 25 :名無しさん@涙目です。:2018/02/01(木) 13:47:04.96 ID:tC2PKJ6X0

    速度はCUDA C++でゴリゴリ手動最適化した場合とくらべ83%となっている。

    >>5
    十分やな

  11. 26 :名無しさん@涙目です。:2018/02/01(木) 13:54:55.91 ID:YfDEXLI/0

    で、俺のN88BASICだと、どう書くの?

    >>21
    CLEAR ,&HCFFF:POKE &HD000,&H76:DEF USR1=&HD000:A=USR1(0)

  12. 27 :名無しさん@涙目です。:2018/02/01(木) 13:57:00.66 ID:8bfYoU530

    NVIDIAって事はCUDA専用?
    ゲーミングPCなんて持ってないです
    とりあえずIntelHDでC#使えるようにIntel様お願いします

  13. 29 :名無しさん@涙目です。:2018/02/01(木) 13:58:48.76 ID:geW4X/Xt0

    GPUでFORTRANできます?

  14. 30 :名無しさん@涙目です。:2018/02/01(木) 14:02:39.96 ID:8bfYoU530

    GPUでFORTRANできます?

    >>29
    PGI CUDA Fortranってのがあるらしい

  15. 31 :名無しさん@涙目です。:2018/02/01(木) 14:02:40.69 ID:8bfYoU530

    GPUでFORTRANできます?

    >>29
    PGI CUDA Fortranってのがあるらしい

  16. 32 :名無しさん@涙目です。:2018/02/01(木) 14:02:56.74 ID:hZwWvrLd0

    速度はCUDA C++でゴリゴリ手動最適化した場合とくらべ83%となっている。

    >>5
    +83% じゃなくてダウンってことか

  17. 36 :名無しさん@涙目です。:2018/02/01(木) 14:05:55.19 ID:arwYwpZH0

    ガンダムで例えてくれ

  18. 39 :名無しさん@涙目です。:2018/02/01(木) 14:10:47.78 ID:68KflGJ40

    ガンダムで例えてくれ

    >>36
    ニュータイプ専用機が底辺派遣プログラマでも操縦可能になった。

  19. 40 :名無しさん@涙目です。:2018/02/01(木) 14:12:32.33 ID:VAe7f18i0

    アンドエッチ

  20. 41 :名無しさん@涙目です。:2018/02/01(木) 14:13:02.48 ID:po85tDcj0

    アンドエッチ

    >>40
    アパサンドヘキサ

  21. 42 :名無しさん@涙目です。:2018/02/01(木) 14:15:02.66 ID:xAcHwHbG0

    GPUとかPCしか使えないじゃん

  22. 43 :名無しさん@涙目です。:2018/02/01(木) 14:20:38.12 ID:GWP/GtEF0

    全然わからん
    openclとかいうやつ簡単に扱えるようになるんか?

  23. 44 :名無しさん@涙目です。:2018/02/01(木) 14:22:18.69 ID:dl8GknlQ0

    並列演算使う場面なんて科学演算だけじゃね?C#でそんなのやるやついるの?

  24. 46 :名無しさん@涙目です。:2018/02/01(木) 14:24:23.16 ID:8bfYoU530

    スマホにもGPUはあるよ
    ただGLES3.1やVulkanのCpmputeShaderを使う必要があるからCUDAは動かない

  25. 48 :名無しさん@涙目です。:2018/02/01(木) 14:38:06.69 ID:YfDEXLI/0

    並列演算使う場面なんて科学演算だけじゃね?C#でそんなのやるやついるの?

    >>44
    使えるようにしとけば制御系でもなんでも使うようになるんじゃないの?

  26. 49 :名無しさん@涙目です。:2018/02/01(木) 14:38:07.81 ID:po85tDcj0

    GPUとかPCしか使えないじゃん

    >>42
    最近はこんなのもあるみたい

    GPUとSSDがPostgreSQLを加速する〜クエリ処理スループット10GB/sへの挑戦〜 [DB Tech Showcase Tokyo/2017]
    https://www.slideshare.net/kaigai/gpussdpostgresql10gbs-db-tech-showcase-tokyo2017

  27. 50 :名無しさん@涙目です。:2018/02/01(木) 14:40:15.80 ID:8bfYoU530

    全然わからん
    openclとかいうやつ簡単に扱えるようになるんか?

    >>43
    ならない
    その発想のHSAは中間レイヤのHSA ILを使い
    GPGPU方面で遅れていた弱小連合が結成したが
    ハードウェアベンダーのIntelとNVIDIAが無視し
    AMDがHSA ILではなくGCN ISAの命令を推奨し
    SamsungとARMがHSA ILを使わず
    Quallcomがチップ開発を怠り
    GoogleとAppleとMSといったOSベンダーと
    OpenCLサイドのKhronosが無視してSPIR-V制定とかした結果事実上空中分解してる

  28. 51 :名無しさん@涙目です。:2018/02/01(木) 14:46:53.09 ID:pMsdXglF0

    速度はCUDA C++でゴリゴリ手動最適化した場合とくらべ83%となっている。

    >>5
    ええやん

  29. 52 :名無しさん@涙目です。:2018/02/01(木) 14:47:24.32 ID:wzil+Vp40

    ガンダムで例えてくれ

    >>36
    EXAM搭載のマゼラアタック

  30. 59 :名無しさん@涙目です。:2018/02/01(木) 15:28:13.87 ID:LYzY9UV/0

    GPUに計算させてるのを画面に繋ぐとぐちゃぐちゃな表示が出るの?

  31. 61 :名無しさん@涙目です。:2018/02/01(木) 16:00:49.60 ID:L/ZDQKzk0

    よく分からんけどトップクラスの人や大企業は自分でコード用意するし
    それ以下の人はほとんど触らないからトータルで需要がないようなとこなんだろうw

  32. 63 :名無しさん@涙目です。:2018/02/01(木) 16:47:36.42 ID:NrBsnAYv0

    よく知らんけどすごくね?C#以外で簡単にできる言語あるの?
    PythonとかC++とかどうなんだ

    >>3
    以外なところでJavaScriptとか
    gpu.jsってライブラリでわりと簡単に使える

  33. 64 :名無しさん@涙目です。:2018/02/01(木) 16:50:14.53 ID:TAvFEPsd0

    で、俺のN88BASICだと、どう書くの?

    >>21
    バージョンによって違うんじゃね?

  34. 74 :名無しさん@涙目です。:2018/02/01(木) 17:41:31.28 ID:U1/k17MR0

    GPUに計算させてるのを画面に繋ぐとぐちゃぐちゃな表示が出るの?

    >>59
    ならないよ。
    昔のグラフィックボードは、ドライバを通して、OSのグラフィック関連の処理を一手に引き受けるのみだった。
    でもいまのグラフィックボードは、普通のアプリからでも計算命令を受け取り、処理をし、自身のメモリも独自
    のプログラムで読み書きできる小型コンピュータに外部モニターへの出力端子がついたようなものになってる。

  35. 75 :名無しさん@涙目です。:2018/02/01(木) 17:41:33.01 ID:TAvFEPsd0

    Parallel.Forの怖さを知らないやつが多すぎる

    頑張ってfor分をParallel.Forに直したんすよ
    で、プログラムを実行したらタスクマネージャーではCPU使用率100%!
    やったぜ劇速プログラムの完成!と思ってストップウォッチ見たら
    for文の時よりおせーでやんの

    理由がわかんなかったからインテルのサイトに行ったら答えが書いてあったよ
    全コア負荷だとターボのクロックが下がるって。。。

  36. 76 :名無しさん@涙目です。:2018/02/01(木) 18:53:53.28 ID:Ap1VvAEZ0

    ネタ古くない?

  37. 77 :名無しさん@涙目です。:2018/02/01(木) 18:58:54.43 ID:HApmNpUK0

    で、俺のN88BASICだと、どう書くの?

    >>21
    80S31が繋がっている初代88か、mkIIだと
    FDD側のZ80まで使ってダブルCPUにする技とかあったな。

  38. 78 :名無しさん@涙目です。:2018/02/01(木) 19:00:24.05 ID:RNyctTFnO

    ネタ古くない?

    >>76
    てやんでえ、築地で仕入れたばかりよ!

  39. 79 :名無しさん@涙目です。:2018/02/01(木) 19:01:20.93 ID:NrBsnAYv0

    で、俺のN88BASICだと、どう書くの?

    >>21
    まずディップスイッチの8番を上げてN-BASICにします

  40. 80 :名無しさん@涙目です。:2018/02/01(木) 19:14:57.04 ID:HApmNpUK0

    ガンダムで例えてくれ

    >>36
    食事提供時以外は空いてるコアファイターやボールを使ってタムラを出撃させる

  41. 85 :名無しさん@涙目です。:2018/02/01(木) 19:38:23.95 ID:o6ix/Alo0

    で、俺のN88BASICだと、どう書くの?

    >>21
    まずストップキーを押しながらリセットし
    次にVRAMに残っているエロ画像を吸い出します

  42. 86 :名無しさん@涙目です。:2018/02/01(木) 19:40:51.38 ID:A+EFSGDb0

    速度はCUDA C++でゴリゴリ手動最適化した場合とくらべ83%となっている。

    >>5
    最適化の余地なしってくらいか
    デフォルトではそこそこに速いと

  43. 87 :名無しさん@涙目です。:2018/02/01(木) 20:08:50.44 ID:0VJcCGxG0

    Parallel.Forの怖さを知らないやつが多すぎる

    頑張ってfor分をParallel.Forに直したんすよ
    で、プログラムを実行したらタスクマネージャーではCPU使用率100%!
    やったぜ劇速プログラムの完成!と思ってストップウォッチ見たら
    for文の時よりおせーでやんの

    理由がわかんなかったからインテルのサイトに行ったら答えが書いてあったよ
    全コア負荷だとターボのクロックが下がるって。。。

    >>75
    ダークシリコン問題?

  44. 90 :名無しさん@涙目です。:2018/02/01(木) 20:14:52.03 ID:O5qdEpiH0

    また変なおまじない追加して来やがったかw
    どんどん俺様言語化して行くな。

  45. 94 :名無しさん@涙目です。:2018/02/01(木) 20:49:55.84 ID:IsxhHrBi0

    unistd.hはユニバーサルストゥディオエッチの略だからな

  46. 96 :名無しさん@涙目です。:2018/02/01(木) 21:04:19.12 ID:HApmNpUK0

    unistd.hはユニバーサルストゥディオエッチの略だからな

    >>94
    フィルコリンズでそんな歌があったな

  47. 98 :名無しさん@涙目です。:2018/02/01(木) 21:26:04.45 ID:gRxN5E3z0

    c#の実装増やすとか言ってたような言ってなかったような
    たしかC++とC#でも記述出来た気がする

  48. 99 :名無しさん@涙目です。:2018/02/01(木) 21:30:46.20 ID:yXOlY99K0

    いまだにGPUをグラフィック以外で使うって思想がよく分かんねえ
    いや別に使ってもいいんだけどグラフィックに使わないならGPUを名乗り続ける理由は何なの

  49. 100 :名無しさん@涙目です。:2018/02/01(木) 21:37:54.42 ID:NrBsnAYv0

    いまだにGPUをグラフィック以外で使うって思想がよく分かんねえ
    いや別に使ってもいいんだけどグラフィックに使わないならGPUを名乗り続ける理由は何なの

    >>99
    グラフィックが豊かになってきてCPUだけでは間に合わないな

    グラ専用のGPUを作ったらいいんじゃないかな→グラボ爆誕

    グラボのパワー余ってることあるよね

    グラボ「わい、グラだけじゃなく普通の計算もやるで!単純計算得意やし!」

  50. 101 :名無しさん@涙目です。:2018/02/01(木) 21:38:59.06 ID:yJVh8IR70

    ハンディターミナルを弄ることになったんだが、
    C#って覚える価値ある言語なのか?

  51. 107 :名無しさん@涙目です。:2018/02/01(木) 21:52:14.98 ID:GzNGP9Rk0

    グラフィックアクセラレーターなのかビデオカードなのかグラフィックボードなのか迷うわ

  52. 108 :名無しさん@涙目です。:2018/02/01(木) 22:00:03.81 ID:NrBsnAYv0

    グラフィックアクセラレーターなのかビデオカードなのかグラフィックボードなのか迷うわ

    >>107
    もともとワークステーションでやってたCADとかをPCでやるときに
    グラ性能が足りなすぎたんで、それを補うハードウェアが「グラフィックアクセラレータ」

    それとは関係なく、AT互換機にはビデオの回路そのものがなかったから
    モニタと繋ぐ為に必要だったのが「ビデオカード」

    後に統合チップセットが出てビデオカードはお役御免したけど
    それでは足らず後付するグラフィックアクセラレータが「グラフィックボード」

  53. 109 :名無しさん@涙目です。:2018/02/01(木) 22:07:38.33 ID:SIF4TD1d0

    input a
    input b
    c=a+b
    print c
    end

  54. 110 :名無しさん@涙目です。:2018/02/01(木) 22:16:10.26 ID:c2Pcrqwp0

    もうグラフィックと関係なくなりつつあるんだからいつまでもGPUと呼び続けるのはいかがなものか

  55. 111 :名無しさん@涙目です。:2018/02/01(木) 22:21:13.19 ID:a7fvawT80

    Parallel.ForってもともとマルチコアCPUで並列処理させる命令だったよね

  56. 114 :名無しさん@涙目です。:2018/02/01(木) 22:28:31.76 ID:ugW7XHAI0

    もうグラフィックと関係なくなりつつあるんだからいつまでもGPUと呼び続けるのはいかがなものか

    >>110
    コプロセッサかアクセラレータだな

  57. 115 :名無しさん@涙目です。:2018/02/01(木) 23:01:46.93 ID:nPj8FhQP0

    たしかに
    だったら最初から計算専用のGPU?をCPUとセットにしとけよと思う

  58. 118 :名無しさん@涙目です。:2018/02/01(木) 23:52:45.03 ID:r0kr9NWe0

    C♯はパラレル処理とかドンドン楽になるよね
    LinQあたりからマジで見直した

  59. 119 :名無しさん@涙目です。:2018/02/02(金) 00:23:49.25 ID:e6vcEn/H0

    これはC#でプログラムを書いていると
    勝手にGPUを使ってくれるって事なの?

  60. 123 :名無しさん@涙目です。:2018/02/02(金) 05:26:07.60 ID:Zmj4CHBJ0

    ハンディターミナルを弄ることになったんだが、
    C#って覚える価値ある言語なのか?

    >>101
    覚える?
    あんなの他の言語やってたら誰でもできるだろ

  61. 134 :名無しさん@涙目です。:2018/02/02(金) 13:27:10.84 ID:zy5Lda/W0

    ライブラリじゃなくて、コンパイラ自体が対応しないとならないコードだから、まるでライブラリ関数みたいな記述は感心しない。

  62. 136 :名無しさん@涙目です。:2018/02/02(金) 19:53:44.01 ID:pzCnSM3q0

    昔2ちゃんねるのスレでスーパーマリオかテトリスが僅か数行のプログラムコードで作られてるって話を思い出した

  63. 137 :名無しさん@涙目です。:2018/02/02(金) 19:55:28.96 ID:QJFkhzjT0

    ダグラムで例えてくれよ

  64. 142 :名無しさん@涙目です。:2018/02/02(金) 21:03:13.83 ID:wK2euG390

    ダグラムで例えてくれよ

    >>137
    キリコの名字のキュービィーは実はクイック・ベーシックQBのこと

  65. 154 :名無しさん@涙目です。:2018/02/03(土) 14:27:09.72 ID:5ZzG7Kql0

    CやC++なら知ってるけど

    これがいみわからん

    Parallel.For(0, N, i => { a[i] += b[i]; });

  66. 162 :名無しさん@涙目です。:2018/02/03(土) 14:48:44.80 ID:NvWbhrlR0

    ラムダ式って未だに理解できないんだが
    ポインタ並に意味わからん

  67. 163 :名無しさん@涙目です。:2018/02/03(土) 14:52:19.05 ID:KII3Nicp0

    ラムダ式って未だに理解できないんだが
    ポインタ並に意味わからん

    >>162
    わかりやすい本読めば一発

  68. 165 :名無しさん@涙目です。:2018/02/03(土) 15:19:47.94 ID:qmP+Yb810

    Parallelなんちゃらって書けばGPUに命令発行できると、ほへー

  69. 167 :名無しさん@涙目です。:2018/02/03(土) 16:57:43.30 ID:pUK6RG740

    Cのstdioっておまじないみたいなものなの?

  70. 169 :名無しさん@涙目です。:2018/02/03(土) 16:59:21.28 ID:Lc2QJeut0

    Cのstdioっておまじないみたいなものなの?

    >>167
    printfとか標準関数が使えるようになる

  71. 172 :名無しさん@涙目です。:2018/02/03(土) 17:16:53.19 ID:jGrPXnLg0

    Parallelなんちゃらって書けばGPUに命令発行できると、ほへー

    >>165
    並列に実行させるって意味だろ?

  72. 176 :名無しさん@涙目です。:2018/02/03(土) 18:42:41.17 ID:4xEgdaO+0

    日本語でプログラムできるようにしろよ

  73. 185 :名無しさん@涙目です。:2018/02/03(土) 19:54:33.46 ID:M722RP0r0

    よく分かんないけどCPUの処理にGPUが一緒に処理してくれるようになるの?

  74. 189 :名無しさん@涙目です。:2018/02/03(土) 20:26:46.93 ID:/nIVhXCa0

    AMPとかBOLTもこんな感じじゃなかったっけ
    よさげに見えるけど適用案件見つけるのたいへんなんよ

  75. 191 :名無しさん@涙目です。:2018/02/03(土) 20:41:45.40 ID:2+EEClwh0

    日本語でプログラムできるようにしろよ

    >>176
    [日本語プログラミング言語]
    なでしこ https://nadesi.com/top/
    プロデル http://rdr.utopiat.net/
    言霊(ことだま) http://crew-lab.sfc.keio.ac.jp/projects/2002kotodama/
    Mind http://www.scripts-lab.co.jp/mind/whatsmind.html

  76. 200 :名無しさん@涙目です。:2018/02/04(日) 07:20:25.49 ID:viovzSe60

    従来のソースコードの書式変えずにコンパイラが勝手にCPU/GPUに振ったバイナリ吐いてくれないの?
    HSAとかそういうものじゃなかったの?

Related Post