Articles of numba

corriendo librosa y numba en raspberry pi 3

Estoy tratando de ejecutar librosa en mi Raspberry pi 3. Después de horas de búsqueda en Internet, finalmente pude instalarlo, pero aún así produce un error cuando bash importarlo. Primero, tuve problemas para instalar la dependencia llvmlite. Finalmente lo instalé con el siguiente código: conda install -c numba llvmlite Yo uso Python 3.4 build con […]

Optimizar doble bucle en python

Estoy tratando de optimizar el siguiente bucle: def numpy(nx, nz, c, rho): for ix in range(2, nx-3): for iz in range(2, nz-3): a[ix, iz] = sum(c*rho[ix-1:ix+3, iz]) b[ix, iz] = sum(c*rho[ix-2:ix+2, iz]) return a, b Probé diferentes soluciones y descubrí que usar numba para calcular la sum de los resultados del producto a mejores resultados: […]

numba – guvectorize es muy lento en comparación con jit

Estaba experimentando con @jit y @guvectorize de @jit y @guvectorize que @guvectorize es considerablemente más lento que @jit . Por ejemplo, tengo el siguiente código que calcula el promedio móvil variable: import numpy as np from numba import * @guvectorize([‘void(float64[:], float64[:], float64[:])’], ‘(n),()->(n)’) def sma(x, m, y): n = x.shape[0] mi = int(m) y[:] *= […]

¿Por qué Numba no mejora esta iteración …?

Estoy probando Numba para acelerar una función que calcula una probabilidad condicional mínima de ocurrencia conjunta. import numpy as np from numba import double from numba.decorators import jit, autojit X = np.random.random((100,2)) def cooccurance_probability(X): P = X.shape[1] CS = np.sum(X, axis=0) #Column Sums D = np.empty((P, P), dtype=np.float) #Return Matrix for i in range(P): for […]

Optimizando dict de conjunto de tupla de ints con Numba?

Estoy aprendiendo a usar Numba (aunque ya estoy bastante familiarizado con Cython). ¿Cómo debo ir para acelerar este código? Observe que la función devuelve un dictado de conjuntos de dos tuplas de entradas. Estoy usando el cuaderno de IPython. Preferiría Numba sobre Cython. @autojit def generateadj(width,height): adj = {} for y in range(height): for x […]

Encontrando vecinos más cercanos a una tesellación triangular.

Tengo una teselación triangular como la que se muestra en la figura. Dado el número N de triangularjs en la teselación, tengo una matriz NX 3 X 3 que almacena las coordenadas (x, y, z) de los tres vértices de cada triángulo. Mi objective es encontrar para cada triángulo el triángulo vecino que comparte el […]

¿Por qué este código numba es 6 veces más lento que el código numpy?

¿Hay alguna razón por la que el siguiente código se ejecute en 2s, def euclidean_distance_square(x1, x2): return -2*np.dot(x1, x2.T) + np.expand_dims(np.sum(np.square(x1), axis=1), axis=1) + np.sum(np.square(x2), axis=1) mientras que el siguiente código numba se ejecuta en 12s? @jit(nopython=True) def euclidean_distance_square(x1, x2): return -2*np.dot(x1, x2.T) + np.expand_dims(np.sum(np.square(x1), axis=1), axis=1) + np.sum(np.square(x2), axis=1) Mi x1 es una matriz […]

Cuda: biblioteca nvvm no encontrada

Estoy intentando ejecutar el siguiente código, pero se informa de un error: NvvmSupportError: libNVVM no se puede encontrar. conda install cudatoolkit : library nvvm no encontrado Mi entorno de desarrollo es: Ubuntu 17.04, Spyder / Python3.5 y lo he instalado a través de conda (numba y cudatoolkit). GPU Nvidia (GTX 1070 y GTX 1060). import […]

¿Cómo resolver el error de reducción de Numba?

Tengo una función que estoy intentando acelerar usando el decorador @jit del módulo Numba. Para mí es esencial acelerar esto tanto como sea posible, porque mi código principal recurre a esta función por millones de veces. Aquí está mi función: from numba import jit, types import Sweep #My own module, works fine @jit(types.Tuple((types.complex128[:], types.float64[:]))(types.complex128[:], types.complex128[:], […]

Mejora el tiempo de ejecución del código de python numpy

Tengo un código que reasigna los contenedores a una gran matriz numpy . Básicamente, los elementos de la gran matriz se han muestreado con una frecuencia diferente y el objective final es volver a agrupar toda la matriz en contenedores fijos freq_bins . El código es un poco lento para la matriz que tengo. ¿Hay […]