質問編集履歴
3
実行結果を追記しました.
title
CHANGED
File without changes
|
body
CHANGED
@@ -234,6 +234,24 @@
|
|
234
234
|
|
235
235
|
これにより, 前述のようなエラーは消えましたが, 計算結果が正しく表示されませんでした.
|
236
236
|
|
237
|
+
```
|
238
|
+
>sample add.cl
|
239
|
+
(A <?> B = C)
|
240
|
+
|
241
|
+
100.0000 <?> 2.20 = 100.00
|
242
|
+
101.0000 <?> 2.20 = 101.00
|
243
|
+
102.0000 <?> 2.20 = 102.00
|
244
|
+
103.0000 <?> 2.20 = 103.00
|
245
|
+
104.0000 <?> 2.20 = 104.00
|
246
|
+
105.0000 <?> 2.20 = 105.00
|
247
|
+
106.0000 <?> 2.20 = 106.00
|
248
|
+
107.0000 <?> 2.20 = 107.00
|
249
|
+
108.0000 <?> 2.20 = 108.00
|
250
|
+
109.0000 <?> 2.20 = 109.00
|
251
|
+
```
|
252
|
+
このように2.20を足し合わせていない結果が返っています.
|
253
|
+
このため, Bの値が0とされているような印象を受けます.
|
254
|
+
|
237
255
|
### 補足情報
|
238
256
|
|
239
257
|
もしかしたら私のタイプミスでたまたまうまく動いたとかだと困るので, 該当箇所のみ写真を添付させていただきます.
|
2
不要なrefを消去(該当箇所にもともとないから)
title
CHANGED
File without changes
|
body
CHANGED
@@ -130,7 +130,7 @@
|
|
130
130
|
/*********************************************************************************/
|
131
131
|
|
132
132
|
handle = GCHandle.Alloc(B, GCHandleType.Pinned);
|
133
|
-
status = clSetKernelArg(kernel, 1, (IntPtr)(Marshal.SizeOf(B)),
|
133
|
+
status = clSetKernelArg(kernel, 1, (IntPtr)(Marshal.SizeOf(B)), handle.AddrOfPinnedObject());
|
134
134
|
handle.Free();
|
135
135
|
if (status != CL_SUCCESS)
|
136
136
|
throw new Exception("clSetKernelArg B failed.");
|
@@ -138,7 +138,7 @@
|
|
138
138
|
/*********************************************************************************/
|
139
139
|
/**ここまで************************************************************************/
|
140
140
|
/*********************************************************************************/
|
141
|
-
status = clSetKernelArg(kernel, 2, (IntPtr)(Marshal.SizeOf(typeof(IntPtr))),
|
141
|
+
status = clSetKernelArg(kernel, 2, (IntPtr)(Marshal.SizeOf(typeof(IntPtr))), ref memC);
|
142
142
|
if (status != CL_SUCCESS)
|
143
143
|
throw new Exception("clSetKernelArg C failed.");
|
144
144
|
|
1
「clSetKernelArgの」という文章を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
そこで, 本書では`clSetKernelArg(4)`に`スカラ変数B`を用いる場面があります.
|
11
11
|
|
12
|
-
C#側での実装は以下のようになっています.
|
12
|
+
`clSetKernelArg`のC#側での実装は以下のようになっています.
|
13
13
|
|
14
14
|
```C#
|
15
15
|
//----------------------------------------------------------------------
|