Exemplo n.º 1
0
        static float[] MultiplyMatrixVector(OpenCL.Net.Environment env, float[] A, float[] b)
        {
            var len     = (uint)b.Length;
            var bufferA = env.Context.CreateBuffer(A, MemFlags.ReadOnly);
            var bufferB = env.Context.CreateBuffer(b, MemFlags.ReadOnly);
            var bufferC = env.Context.CreateBuffer(SourceZeroVector(), MemFlags.WriteOnly);

            var kernel = new Kernel.MultiplyMatrixVector(env.Context);

            kernel.Compile("-cl-opt-disable");

            kernel.Run(env.CommandQueues[0], bufferC, bufferA, bufferB, n, len);

            // WTF: We should wait for run
            var results = new float[b.Length];

            env.CommandQueues[0].ReadFromBuffer(bufferC, results);

            return(results);
        }
Exemplo n.º 2
0
        static float[] MultiplyMatrixVector(OpenCL.Net.Environment env, float[] A, float[] b)
        {
            var len = (uint)b.Length;
            var bufferA = env.Context.CreateBuffer(A, MemFlags.ReadOnly);
            var bufferB = env.Context.CreateBuffer(b, MemFlags.ReadOnly);
            var bufferC = env.Context.CreateBuffer(SourceZeroVector(), MemFlags.WriteOnly);

            var kernel = new Kernel.MultiplyMatrixVector(env.Context);
            kernel.Compile("-cl-opt-disable");

            kernel.Run(env.CommandQueues[0], bufferC, bufferA, bufferB, n, len);

            // WTF: We should wait for run
            var results = new float[b.Length];
            env.CommandQueues[0].ReadFromBuffer(bufferC, results);

            return results;
        }