internal CudaRAND(GPGPU gpu, curandRngType rng_type) { _gpu = gpu; if (IntPtr.Size == 8) { _driver = new CURANDDriver64(); } else { _driver = new CURANDDriver32(); } }
internal CudaRAND(GPGPU gpu, curandRngType rng_type) { _gpu = gpu; if (IntPtr.Size == 8) { _driver = new CURANDDriver64(); } else { throw new NotSupportedException(); //_driver = new CURANDDriver32(); } }
/// <summary> /// Creates an instance based on the specified gpu. /// </summary> /// <param name="gpu">The gpu.</param> /// <param name="rng_type">The type of generator.</param> /// <param name="host">if set to <c>true</c> the uses generator on the host (if applicable).</param> /// <returns>New instance.</returns> public static GPGPURAND Create(GPGPU gpu, curandRngType rng_type, bool host = false) { GPGPURAND rand; if (!host && gpu is CudaGPU) { rand = new CudaDeviceRAND(gpu, rng_type); } else if (gpu is CudaGPU) { rand = new CudaHostRAND(gpu, rng_type); } else { rand = new HostRAND(gpu, rng_type); } return(rand); }
public curandStatus CreateGeneratorHost(ref RandGenerator generator, curandRngType rng_type) { return(curandCreateGeneratorHost(ref generator, rng_type)); }
private static extern curandStatus curandCreateGeneratorHost(ref RandGenerator generator, curandRngType rng_type);
internal CudaHostRAND(GPGPU gpu, curandRngType rng_type) : base(gpu, rng_type) { SafeCall(_driver.CreateGeneratorHost(ref _gen, rng_type)); }
/// <summary> /// Creates an instance based on the specified gpu. /// </summary> /// <param name="gpu">The gpu.</param> /// <param name="rng_type">The type of generator.</param> /// <param name="host">if set to <c>true</c> the uses generator on the host (if applicable).</param> /// <returns>New instance.</returns> public static GPGPURAND Create(GPGPU gpu, curandRngType rng_type, bool host = false) { GPGPURAND rand; if (!host && gpu is CudaGPU) rand = new CudaDeviceRAND(gpu, rng_type); else if (gpu is CudaGPU) rand = new CudaHostRAND(gpu, rng_type); else rand = new HostRAND(gpu, rng_type); return rand; }
public curandStatus CreateGeneratorHost(ref RandGenerator generator, curandRngType rng_type) { return curandCreateGeneratorHost(ref generator, rng_type); }
internal HostRAND(GPGPU gpu, curandRngType rng_type) { throw new CudafyMathException(CudafyMathException.csX_NOT_CURRENTLY_SUPPORTED, "HostRand"); }
internal CudaDeviceRAND(GPGPU gpu, curandRngType rng_type) : base(gpu, rng_type) { SafeCall(_driver.CreateGenerator(ref _gen, rng_type)); }
public CudaRandomDevice(curandRngType type = curandRngType.CURAND_RNG_PSEUDO_DEFAULT) { generator = cuRAND.CreateGenerator(type); }