Я хочу взять результирующее значение из opencl
Здравствуйте, я просматривал библиотеку OpenCL в C# для того, что будет использоваться в моем проекте.
Но я не знаю, как получить вычисленные данные из библиотеки OpenCL.
public static void RunGPU() { try { EasyCL cl = new EasyCL() { Accelerator = AcceleratorDevice.GPU }; int[] WorkSet1 = new int[100]; int[] WorkSet2 = new int[100]; int[] WorkSet3 = new int[100]; for (int i = 0; i < 100; i++) { WorkSet1[i] = i; WorkSet2[i] = i + 1; WorkSet3[i] = i + 2; } cl.LoadKernel(IsPrime); cl.Invoke("dd", 0, 1, WorkSet1, WorkSet2, WorkSet3); //OpenCL uses a Cache. Real speed after that int a = 0; a++; } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } static string IsPrime { get { return @" kernel void dd(global int* message1, global int* message2, global int* message3) { for(int i = 0; i<100; i++) { *(message1 + i) = message2[i] + message3[i]; printf(""%d %d %d\n"", message1[i], message2[i], message3[i]); } } "; } }
в этом коде метод RunGPU вызывает IsPrime.
затем добавляются message2 и message3 и сохраняются в message1
и покажите значения message1 в текстовом поле консоли.
но метод IsPrime не может повлиять на WorkSet1 в RunGPU
Я надеюсь, что результирующее значение(добавлять) в Workset1 в RunGPU.
Но я не знаю, как это сделать.
message1 не удалось сохранить в Workset1.
Как message1 может быть сохранен в Workset1?
Что я уже пробовал:
Я пытался получить его. и сделайте тестовую программу из, Чтобы получить значение результата из OpenCL