pyfft

Biblioteca FFT para Pycuda y PyOpencl
Descargar ahora

pyfft Clasificación y resumen

Anuncio publicitario

  • Rating:
  • 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

SLEPC

Biblioteca escalable para cálculos de problemas de valuevalue ...

157

Descargar

pyudt

Python Wrapper para la biblioteca de transferencia de datos basada en UDP (UDT) ...

190

Descargar

PyBFC

Una biblioteca de Python que incluye gráficos de dependencia o Diccionario de atributos ...

64

Descargar