Beispiel #1
0
    def generate(self, ary, size=None):
        """Generate quasi random number in ary.

        :param ary: Numpy array or cuda device array.

        :param size: Number of samples;
                     Default to array size.  Must be multiple of ndim.
        """
        self._require_array(ary)
        size = size or ary.size
        dary, conv = cuda._auto_device(ary, stream=self.stream)
        self._gen.generate(dary, size)
        if conv:
            dary.copy_to_host(ary, stream=self.stream)
Beispiel #2
0
    def poisson(self, ary, lmbd, size=None):
        '''Generate floating point random number sampled
        from a poisson distribution and fill into ary.

        :param ary: Numpy array or cuda device array.
        :param lmbda: Lambda for the distribution.
        :param size: Number of samples. Default to array size.
        '''
        self._require_array(ary)
        size = size or ary.size
        dary, conv = cuda._auto_device(ary, stream=self.stream)
        self._gen.generate_poisson(dary, lmbd, size)
        if conv:
            dary.copy_to_host(ary, stream=self.stream)
Beispiel #3
0
    def lognormal(self, ary, mean, sigma, size=None):
        '''Generate floating point random number sampled
           from a log-normal distribution and fill into ary.

        :param ary: Numpy array or cuda device array.
        :param mean: Center of the distribution.
        :param sigma: Standard deviation of the distribution.
        :param size: Number of samples. Default to array size.
        '''
        self._require_array(ary)
        size = size or ary.size
        dary, conv = cuda._auto_device(ary, stream=self.stream)
        self._gen.generate_log_normal(dary, size, mean, sigma)
        if conv:
            dary.copy_to_host(ary, stream=self.stream)
Beispiel #4
0
def to_device(ary):
    dary, _ = cuda._auto_device(ary)
    return dary
Beispiel #5
0
def to_device(ary):
    dary, _ = cuda._auto_device(ary)
    return dary
Beispiel #6
0
def _readonly(*arys):
    ds = []
    for a in arys:
        dmem, _ = cuda._auto_device(a)
        ds.append(dmem)
    yield ds