質問編集履歴

3

実行結果を追記しました.

2021/01/12 02:38

投稿

yosse95ai
yosse95ai

スコア39

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を消去(該当箇所にもともとないから)

2021/01/12 02:38

投稿

yosse95ai
yosse95ai

スコア39

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)), ref handle.AddrOfPinnedObject());
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の」という文章を追加

2021/01/11 06:39

投稿

yosse95ai
yosse95ai

スコア39

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