public OpenCLSytem(string kernel_source) { OpenCLEnvironment.SetupSingleDevice("*A*", CL.OpenCLDeviceTyp.Cpu); m_pCommandQueue = OpenCLEnvironment.CreateCommandQueue(); m_pProgram = OpenCLEnvironment.CreateProgramFromSource(kernel_source, "testProgramm"); m_pProgram.Build(0, null); m_pKernel = m_pProgram.CreateKernel("add"); }
public Example(string path, Game pGame) { OpenCLEnvironment.SetupSingleDevice("*A*", OpenCLDeviceTyp.Cpu, pGame); m_pCommandQueue = OpenCLEnvironment.CreateCommandQueue(); m_pProgram = OpenCLEnvironment.CreateProgramFromSource(System.IO.File.ReadAllText(path), "testProgramm"); m_pProgram.Build(0, null); m_pKernel = m_pProgram.CreateKernel("add"); }
public void popCorn() { float[] a = new float[WORKGROUP_SIZE]; float[] b = new float[WORKGROUP_SIZE]; for (int i = 0; i < WORKGROUP_SIZE; i++) { a[i] = 1.0f * i; b[i] = 1.0f * i; } m_a = OpenCLEnvironment.CreateBuffer("bufferA", BufferFlags.ReadOnly | BufferFlags.CopyHostPtr, WORKGROUP_SIZE, BufferType.Float, a); m_b = OpenCLEnvironment.CreateBuffer("bufferB", BufferFlags.ReadOnly, WORKGROUP_SIZE, BufferType.Float); m_c = OpenCLEnvironment.CreateBuffer("bufferC", BufferFlags.WriteOnly, WORKGROUP_SIZE, BufferType.Float); Events ev = m_pCommandQueue.EnqueueWriteBuffer(m_b, true, 0, (sizeof(float) * WORKGROUP_SIZE), b); ev.ReleaseEvents(); m_pKernel.SetArguments(m_a, m_b, m_c); m_pCommandQueue.Finish(); }