Пример #1
0
 public void ScalarMultiplication(CudaDeviceVector deviceVector, CudaHostScalar scalar)
 {
     if (deviceVector == null)
     {
         throw new ArgumentNullException("deviceVector");
     }
     if (scalar == null)
     {
         throw new ArgumentNullException("scalar");
     }
     CudaAlgebraImports.CublasScalarMult(this.handle.Value, deviceVector.DevicePointer, deviceVector.ElementSpacing,
         deviceVector.Length, scalar.PageLockedPointer);
 }
Пример #2
0
        public void ScalarMultiplicationTest()
        {
            using (CudaSharpStream stream = new CudaSharpStream())
            {
                CudaAlgebra target = stream.Algebra;
                using (CudaHostVector hostVector = new CudaHostVector(50000))
                {
                    using (CudaDeviceVector deviceVector = new CudaDeviceVector(50000))
                    {
                        using (CudaHostScalar hostScalar = new CudaHostScalar(3))
                        {
                            hostVector[2] = 3;

                            stream.MemoryManagement.Copy(hostVector, deviceVector);
                            target.ScalarMultiplication(deviceVector, hostScalar);
                            stream.MemoryManagement.Copy(deviceVector, hostVector);
                            stream.Synchronize();

                            Assert.AreEqual(9, hostVector[2]);
                        }
                    }
                }
            }
        }