DirectX - ページ 2 123456789...12 新しいコメント Nikolai Semko 2020.03.10 00:57 #11 Rorschach: https://www.mql5.com/ru/forum/227736 シェーダーに転送される。最初の15秒はcpuでソースコードが動作し、その後gpu版が動作します。 "コンパイル前にCanvas.mqhファイル内の配列m_pixels[]をprotected:からpublic:に移動する必要がある" うーん、面白い。同じ速度で判明する。おそらく、3D化されていないからでしょう。 このコードで試して みる必要がある。 ZSYはこのデザインを採用しているので、オリジナルのライブラリを修正する必要はありません #define protected public #include <Canvas\Canvas.mqh> #undef protected SZY やばい!すみません - コードにミスがあったため、CPU部分が全く動いていないことに気がつきませんでした。修正しました。 結果 - GPUで2.5倍高速化。 とても嬉しいことです。今回の実装、本当にありがとうございました。ただ、少し手を加えただけです。 ファイル: TestSheders.mq5 8 kb Nikolai Semko 2020.03.10 03:08 #12 Rorschach: https://www.mql5.com/ru/forum/227736 シェーダーに転送される。最初の15秒間はcpu上でソースコードを実行し、その後gpu上でバージョンを実行します。 このコードで同じことをやって、計算の複雑さ(重心位置の増加)によって性能向上がどう変わるかを見るのは興味深いことです。 このコードでは、スピードアップのために正弦の配列を使用せず、ただ正弦を計算して います。また、回転する重心の数を変更することも可能です。 ファイル: Swirl2.mq5 5 kb Rorschach 2020.03.10 11:42 #13 Nikolai Semko: このコードで試して みる必要がある。 指標計算を完全にGpuで行いたいので、そのようなデータ量の転送方法を考えなければなりません。 ニコライ・セムコ その結果、GPU経由では2.5倍の高速化を実現しました。 ニコライ・セムコ このコードでは、高速化のために正弦配列を使用せず、単に正弦を計算して います。 XRGB(uchar(128+127*sin(d*45)),uchar(128+127*sin(d*70)),uchar(128+127*sin(d*25))); ちなみに、私のシェーダーではこの数式を使用しているので、スピードアップは〜10倍です。 ニコライ・セムコ このコードで同じことをして、計算の複雑さ(重心位置の増加)によって性能向上がどのように変わるかを見るのは興味深いことです。 そうするようにします。 Nikolai Semko 2020.03.10 13:34 #14 Rorschach: 指標計算を完全にgpuで行いたいので、このような大容量のデータをどのように転送するか考えなければなりません。 ちなみに、この数式をシェーダーで使っているので、加速度は〜10倍です。 作ってみますね。 その結果、感動を与えることができると思います。 そうですね、本当にMQL5にはとてもクールな機能が追加されていますね。MQチームの皆さん、ありがとうございました。 このリソースをプログラムに組み込むだけで、ビデオカードのリソースを利用した数学計算の パフォーマンスを何倍にも高めることができます。これにより、CPU自体の負荷が軽減されます。つまり、市場にとってのスーパーオプションです。 また、OpenCLがユーザー側で何らかのアクションを起こしてソフトウェアをインストールする必要があるとすれば、DirectXはすでにWindowsにデフォルトでインストールされています。そして、一番驚いたのは、DirectXを使ったときにex5のファイルがどれだけ増えるかを調べたのですが、全く増えなかったことです。とてもかっこいい!!!勉強して使ってみよう。 Rorschach 2020.03.10 15:53 #15 Nikolai Semko: その結果、感動を与えることができるはずだと思います。 そうですね、本当にMQL5にはとてもクールな機能が追加されていますね。MQチームの皆さん、ありがとうございました。 このリソースをプログラムに組み込むだけで、ビデオカードのリソースを利用した数学計算の パフォーマンスを何倍にも高めることができます。これにより、CPU自体の負荷が軽減されます。つまり、市場にとってのスーパーオプションです。 また、OpenCLがユーザー側で何らかのアクションを起こしてソフトウェアをインストールする必要があるとすれば、DirectXはすでにWindowsにデフォルトでインストールされています。そして、一番驚いたのは、DirectXを使ったときにex5のファイルがどれだけ増えるかを調べたのですが、全く増えなかったことです。とてもかっこいい!!!勉強して使ってみよう。 ちなみに、そうですね、OCLよりもDXの方が汎用性が高いです。同じ能力+3D。CPUモードがあり、そのためにCPUにドライバを載せる必要はありません。 Rorschach 2020.03.10 23:40 #16 Rorschach: ちなみに、この数式をシェーダーで使っているので、加速度は〜10倍です。 まだ2.5倍を数える必要があります。CPUは最適化の影響を受けたが、gpuは受けなかった。 ニコライ・セムコ このコードで同じことをやって、計算の複雑さ(重心位置の増加)によって性能向上がどう変わるかを見るのは面白いですね。 このコードでは、スピードアップのために正弦の配列を使用せず、ただ正弦を計算して います。また、回転する重心の数を変更することも可能です。 最適化を有効にした。コードを3サイクルに整理し、転送しやすくしました。512センターが限度です。デフォルトでは、gpu上で直接実行されます。 ファイル: Swirl2_GPU.mq5 9 kb pixel.zip 1 kb Nikolai Semko 2020.03.11 02:08 #17 Rorschach: やはり2.5倍は数えなければならない。CPUは最適化の影響を受けたが、GPUは受けなかった。 最適化を有効にした。移植しやすいように、コードを3サイクルに書き直しました。このコードには512センターという制限があります。デフォルトでは、GPU上で直接実行されます。 ありがとうございました。 単純計算で2.5倍というのも、非常に良い結果だと思います。3Dでは、さらに急峻な結果になると思います。 Serhii Shevchuk 2020.03.11 03:36 #18 Rorschach: やはり2.5倍は数えなければならない。CPUは最適化の影響を受けたが、GPUは受けなかった。 最適化を有効にした。移植しやすいように、コードを3つのループに並べ替えました。512センターに限定しています。デフォルトでは、GPU上で直接実行されます。 OpenClの実装について質問されました。何かが判明した。コードをきれいにする時間がなくて、失礼しました。要は、「動く」ということです。 __kernel void Func(int N, __global double *XP, __global double *YP, __global uchar *h, __global uint *buf) { size_t X = get_global_id(0); size_t Width = get_global_size(0); size_t Y = get_global_id(1); float2 p; double D=0,S1=0,S2=0; for(int w=0;w<N;w++){ p.x = XP[w]-X; p.y = YP[w]-Y; D = fast_length(p); S2+=D; if(w<N/2) S1+=D; } // double d=S1/S2; buf[Y*Width+X] = upsample(upsample((uchar)0xFF,(uchar)h[(int)(d*11520)]),upsample((uchar)h[(int)(d*17920)],(uchar)h[(int)(d*6400)])); } ファイル: Swirl2_OCL.mq5 14 kb test_002.zip 1 kb Nikolai Semko 2020.03.11 05:28 #19 Serhii Shevchuk: OpenClの実装が欲しいということでしたね。何かあるブラッシュアップする時間がなく、コードで失礼しました。要は、「動く」ということです。 ワオッ!いやぁ~、正直言って予想外でしたね。私の控えめなビデオカードで10倍以上のゲインです。 ありがとうございました。 Rorschach 2020.03.11 08:18 #20 Serhii Shevchuk: OpenClの実装が欲しいということでしたね。何かあるブラッシュアップする時間がなく、コードで失礼しました。要は、「動く」ということです。 ありがとうございました。 計算がダブルになっていませんか?それから、特に印象的なのはその結果です。 123456789...12 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
https://www.mql5.com/ru/forum/227736
シェーダーに転送される。最初の15秒はcpuでソースコードが動作し、その後gpu版が動作します。
"コンパイル前にCanvas.mqhファイル内の配列m_pixels[]をprotected:からpublic:に移動する必要がある"
うーん、面白い。同じ速度で判明する。おそらく、3D化されていないからでしょう。
このコードで試して みる必要がある。
ZSYはこのデザインを採用しているので、オリジナルのライブラリを修正する必要はありません
SZY
やばい!すみません - コードにミスがあったため、CPU部分が全く動いていないことに気がつきませんでした。修正しました。
結果 - GPUで2.5倍高速化。
とても嬉しいことです。今回の実装、本当にありがとうございました。ただ、少し手を加えただけです。
https://www.mql5.com/ru/forum/227736
シェーダーに転送される。最初の15秒間はcpu上でソースコードを実行し、その後gpu上でバージョンを実行します。
このコードで同じことをやって、計算の複雑さ(重心位置の増加)によって性能向上がどう変わるかを見るのは興味深いことです。
このコードでは、スピードアップのために正弦の配列を使用せず、ただ正弦を計算して います。また、回転する重心の数を変更することも可能です。
このコードで試して みる必要がある。
指標計算を完全にGpuで行いたいので、そのようなデータ量の転送方法を考えなければなりません。
その結果、GPU経由では2.5倍の高速化を実現しました。
ニコライ・セムコ
このコードでは、高速化のために正弦配列を使用せず、単に正弦を計算して います。
ちなみに、私のシェーダーではこの数式を使用しているので、スピードアップは〜10倍です。
このコードで同じことをして、計算の複雑さ(重心位置の増加)によって性能向上がどのように変わるかを見るのは興味深いことです。
そうするようにします。
指標計算を完全にgpuで行いたいので、このような大容量のデータをどのように転送するか考えなければなりません。
ちなみに、この数式をシェーダーで使っているので、加速度は〜10倍です。
作ってみますね。
その結果、感動を与えることができると思います。
そうですね、本当にMQL5にはとてもクールな機能が追加されていますね。MQチームの皆さん、ありがとうございました。
このリソースをプログラムに組み込むだけで、ビデオカードのリソースを利用した数学計算の パフォーマンスを何倍にも高めることができます。これにより、CPU自体の負荷が軽減されます。つまり、市場にとってのスーパーオプションです。
また、OpenCLがユーザー側で何らかのアクションを起こしてソフトウェアをインストールする必要があるとすれば、DirectXはすでにWindowsにデフォルトでインストールされています。そして、一番驚いたのは、DirectXを使ったときにex5のファイルがどれだけ増えるかを調べたのですが、全く増えなかったことです。とてもかっこいい!!!勉強して使ってみよう。
その結果、感動を与えることができるはずだと思います。
そうですね、本当にMQL5にはとてもクールな機能が追加されていますね。MQチームの皆さん、ありがとうございました。
このリソースをプログラムに組み込むだけで、ビデオカードのリソースを利用した数学計算の パフォーマンスを何倍にも高めることができます。これにより、CPU自体の負荷が軽減されます。つまり、市場にとってのスーパーオプションです。
また、OpenCLがユーザー側で何らかのアクションを起こしてソフトウェアをインストールする必要があるとすれば、DirectXはすでにWindowsにデフォルトでインストールされています。そして、一番驚いたのは、DirectXを使ったときにex5のファイルがどれだけ増えるかを調べたのですが、全く増えなかったことです。とてもかっこいい!!!勉強して使ってみよう。
ちなみに、そうですね、OCLよりもDXの方が汎用性が高いです。同じ能力+3D。CPUモードがあり、そのためにCPUにドライバを載せる必要はありません。
ちなみに、この数式をシェーダーで使っているので、加速度は〜10倍です。
まだ2.5倍を数える必要があります。CPUは最適化の影響を受けたが、gpuは受けなかった。
このコードで同じことをやって、計算の複雑さ(重心位置の増加)によって性能向上がどう変わるかを見るのは面白いですね。
このコードでは、スピードアップのために正弦の配列を使用せず、ただ正弦を計算して います。また、回転する重心の数を変更することも可能です。
最適化を有効にした。コードを3サイクルに整理し、転送しやすくしました。512センターが限度です。デフォルトでは、gpu上で直接実行されます。
やはり2.5倍は数えなければならない。CPUは最適化の影響を受けたが、GPUは受けなかった。
最適化を有効にした。移植しやすいように、コードを3サイクルに書き直しました。このコードには512センターという制限があります。デフォルトでは、GPU上で直接実行されます。
ありがとうございました。
単純計算で2.5倍というのも、非常に良い結果だと思います。3Dでは、さらに急峻な結果になると思います。
やはり2.5倍は数えなければならない。CPUは最適化の影響を受けたが、GPUは受けなかった。
最適化を有効にした。移植しやすいように、コードを3つのループに並べ替えました。512センターに限定しています。デフォルトでは、GPU上で直接実行されます。
OpenClの実装について質問されました。何かが判明した。コードをきれいにする時間がなくて、失礼しました。要は、「動く」ということです。
OpenClの実装が欲しいということでしたね。何かあるブラッシュアップする時間がなく、コードで失礼しました。要は、「動く」ということです。
ワオッ!いやぁ~、正直言って予想外でしたね。私の控えめなビデオカードで10倍以上のゲインです。
ありがとうございました。
OpenClの実装が欲しいということでしたね。何かあるブラッシュアップする時間がなく、コードで失礼しました。要は、「動く」ということです。
ありがとうございました。
計算がダブルになっていませんか?それから、特に印象的なのはその結果です。