pyfftBiblioteca FFT para Pycuda y PyOpencl | |
Descargar ahora |
pyfft Clasificación y resumen
Anuncio publicitario
- Licencia:
- MIT/X Consortium Lic...
- Nombre del editor:
- Bogdan Opanchuk
- Sitio web del editor:
- http://github.com/Manticore
pyfft Etiquetas
pyfft Descripción
Biblioteca FFT para Pycuda y Pyopencl. PYFFT es un módulo de Python que contiene la implementación de FFT lote, portado de la implementación de OpenCL de Apple. La ideología de OpenCl de construir el código del kernel en los mapas de moscas perfectamente en Pycuda / Pyopencl, y la variedad de motores de plantación de Python hace que la generación de código sea más sencilla. Utilicé el motor de plantación de mako, simplemente por la preferencia personal. El código se puede cambiar fácilmente para usar cualquier otro motor. En espera: "CUDA" Parte de PYFFT requiere la versión de desarrollo actual de Pycuda (0.94). Cómpreno de inicio El uso es bastante simple. Primero, importación de interfaz de creación de adormisión y plan de PYFFT (usemos CUDA en este ejemplo): >>> del plan de importación PYFFT.CUDA >>> Importar NUMPYSINE PRINCIPÍA QUE ESTAMOS UTILIZANDO CUDA, DEBE INICIALIZAR ANTESIGIR ANTES DE CUALQUIER CUDA FUNCIONES DE CUDA ( De forma predeterminada, el plan utilizará el contexto existente, pero hay otras posibilidades; consulte la entrada de referencia para el plan para obtener más información). Además, necesitaremos un módulo GPUARRAY para pasar datos desde y hacia la GPU: >>> desde Pycuda.Tools Import make_default_context >>> Importar pycuda.gpuarray como GPUARRAY >>> Importar Pycuda.Driver como Cuda >>> Cuda.init ( ) >>> contexto = make_default_context () Luego se debe crear el plan. La creación no es muy rápida, principalmente debido a la velocidad de compilación. Pero, afortunadamente, las fuentes compiladas de caché de Pycuda y Pyopencl, por lo que si usa el mismo plan para cada ejecución de su programa, se creará bastante rápido. >>> Plan = Plan = Plan ((16, 16)) Ahora, prepare la matriz de prueba simple e intente ejecutar el plan sobre él: >>> DATOS = NUTPY.ONES ((16, 16), DTYPE = NUMPY.PLEX64)> >> gpu_data = gpuarray.to_gpu (datos) >>> plan.execute (gpu_data) >>> resultado = gpu_data.get () >>> Resultado de impresión # Doctest: + ellipsis ... ] Como se esperaba, obtuvimos matriz con la primera no Elemento de Zero, igual al tamaño de la matriz. Realicemos ahora la transformación inversa: >>> plan.execute (gpu_data, inverso = true) >>> resultado = gpu_data.get () Dado que los datos no son enteros, no podemos simplemente compararlo. Simplemente calcularemos el error en su lugar. >>> ERROR = numpy.abs (numpy.sum (numpy.abs (datos) - numpy.abs (result)) / data.size) >>> Error <1etruethat-6's lo suficientemente bueno para los n
pyfft Software relacionado
PyBFC
Una biblioteca de Python que incluye gráficos de dependencia o Diccionario de atributos ...
64
biblioteca de klen
Biblioteca para crear, editar y leer libros electrónicos y manuales electrónicos ...
130