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); }
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]); } } } } }