/// <summary>
        /// Creates a ClooBuffer and fills it with random values
        /// </summary>
        /// <param name="length">buffer length</param>
        /// <returns></returns>
        public virtual ClooBuffer<HaarFeatureNode> CreateClooBufferHaarFeatureNode(int length = 9999)
        {
            ResetRandomSeed();
            var buffer = new ClooBuffer<HaarFeatureNode>(Context, ComputeMemoryFlags.ReadWrite | ComputeMemoryFlags.UseHostPointer, length);

            Assert.AreNotEqual(0, buffer.HostBuffer.Length);
            Assert.AreEqual(buffer.HostBuffer.Length * Marshal.SizeOf(typeof(HaarFeatureNode)), buffer.Size);
            buffer.WriteToDevice(Queue);

            return buffer;
        }
Пример #2
0
        /// <summary>
        /// Creates a ClooBuffer and fills it with random values
        /// </summary>
        /// <param name="length">buffer length</param>
        /// <returns></returns>
        public virtual ClooBuffer<uint> CreateClooBufferUInt(int length = 9999)
        {
            ResetRandomSeed();
            var buffer = new ClooBuffer<uint>(Context, ComputeMemoryFlags.ReadWrite | ComputeMemoryFlags.AllocateHostPointer, length);

            Assert.AreNotEqual(0, buffer.HostBuffer.Length);
            Assert.AreEqual(4 * buffer.HostBuffer.Length, buffer.Size);

            for (int i = 0; i < length; i++)
                buffer.HostBuffer[i] = (uint)Random.Next(256);
            buffer.WriteToDevice(Queue);
            Assert.AreNotEqual(0, buffer.HostBuffer.Sum(x => x));

            return buffer;
        }