質問編集履歴
3
実行結果を追記しました.
test
CHANGED
File without changes
|
test
CHANGED
@@ -470,6 +470,42 @@
|
|
470
470
|
|
471
471
|
|
472
472
|
|
473
|
+
```
|
474
|
+
|
475
|
+
>sample add.cl
|
476
|
+
|
477
|
+
(A <?> B = C)
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
100.0000 <?> 2.20 = 100.00
|
482
|
+
|
483
|
+
101.0000 <?> 2.20 = 101.00
|
484
|
+
|
485
|
+
102.0000 <?> 2.20 = 102.00
|
486
|
+
|
487
|
+
103.0000 <?> 2.20 = 103.00
|
488
|
+
|
489
|
+
104.0000 <?> 2.20 = 104.00
|
490
|
+
|
491
|
+
105.0000 <?> 2.20 = 105.00
|
492
|
+
|
493
|
+
106.0000 <?> 2.20 = 106.00
|
494
|
+
|
495
|
+
107.0000 <?> 2.20 = 107.00
|
496
|
+
|
497
|
+
108.0000 <?> 2.20 = 108.00
|
498
|
+
|
499
|
+
109.0000 <?> 2.20 = 109.00
|
500
|
+
|
501
|
+
```
|
502
|
+
|
503
|
+
このように2.20を足し合わせていない結果が返っています.
|
504
|
+
|
505
|
+
このため, Bの値が0とされているような印象を受けます.
|
506
|
+
|
507
|
+
|
508
|
+
|
473
509
|
### 補足情報
|
474
510
|
|
475
511
|
|
2
不要なrefを消去(該当箇所にもともとないから)
test
CHANGED
File without changes
|
test
CHANGED
@@ -262,7 +262,7 @@
|
|
262
262
|
|
263
263
|
handle = GCHandle.Alloc(B, GCHandleType.Pinned);
|
264
264
|
|
265
|
-
status = clSetKernelArg(kernel, 1, (IntPtr)(Marshal.SizeOf(B)),
|
265
|
+
status = clSetKernelArg(kernel, 1, (IntPtr)(Marshal.SizeOf(B)), handle.AddrOfPinnedObject());
|
266
266
|
|
267
267
|
handle.Free();
|
268
268
|
|
@@ -278,7 +278,7 @@
|
|
278
278
|
|
279
279
|
/*********************************************************************************/
|
280
280
|
|
281
|
-
status = clSetKernelArg(kernel, 2, (IntPtr)(Marshal.SizeOf(typeof(IntPtr))), ref memC);
|
281
|
+
status = clSetKernelArg(kernel, 2, (IntPtr)(Marshal.SizeOf(typeof(IntPtr))), ref memC);
|
282
282
|
|
283
283
|
if (status != CL_SUCCESS)
|
284
284
|
|
1
「clSetKernelArgの」という文章を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
C#側での実装は以下のようになっています.
|
23
|
+
`clSetKernelArg`のC#側での実装は以下のようになっています.
|
24
24
|
|
25
25
|
|
26
26
|
|