Esempio n. 1
0
        static float[] MultiplyMatrix(OpenCL.Net.Environment env, float[] A, float[] B)
        {
            var len     = (uint)A.Length;
            var bufferA = env.Context.CreateBuffer(A, MemFlags.ReadOnly);
            var bufferB = env.Context.CreateBuffer(B, MemFlags.ReadOnly);
            var bufferC = env.Context.CreateBuffer(SourceZeroMatrix(), MemFlags.WriteOnly);

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

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

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

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

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

            return(results);
        }
Esempio n. 2
0
        static float[] MultiplyMatrix(OpenCL.Net.Environment env, float[] A, float[] B)
        {
            var len = (uint)A.Length;
            var bufferA = env.Context.CreateBuffer(A, MemFlags.ReadOnly);
            var bufferB = env.Context.CreateBuffer(B, MemFlags.ReadOnly);
            var bufferC = env.Context.CreateBuffer(SourceZeroMatrix(), MemFlags.WriteOnly);
            
            var kernel = new Kernel.MultiplyMatrix(env.Context);                        
            kernel.Compile("-cl-opt-disable");

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

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

            return results;
        }