Para otro enfoque, puede truncar la ventana de promedio móvil exponencial y luego calcular su señal filtrada haciendo una convolución entre su señal y la exponencial con ventanas. La convolución se puede calcular usando la librería CUDA FFT libre (cuFFT) porque, como ustedes saben, la convolución puede expresarse como la multiplicación puntual de las dos señales en el dominio fourier (Este es el apropiado nombre del Teorema de la Convolución, Que se ejecuta con una complejidad de O (n log (n))). Este tipo de enfoque reducirá al mínimo el código del kernel CUDA y se ejecutará muy rápidamente, incluso en una GeForce 570 en particular, por lo que si puede hacer todos sus cálculos en una sola precisión (flotante). Yo propondría manipular la ecuación de diferencia anterior como se indica a continuación y luego usar primitivas CUDA Thrust. DIFERENCIAS MANIPULACIÓN DE ECUACIÓN - FORMA EXPLÍCITA DE LA DIFERENCIA DE ECUACIÓN Mediante el álgebra simple, se puede encontrar lo siguiente: Por consiguiente, la forma explícita es la siguiente: CUDA THRUST IMPLEMENTACIÓN Puede implementar la forma explícita anterior mediante los siguientes pasos: Inicializar una secuencia de entrada dinput to Alfa excepto para dinput0 1. Definir un vector d1 overbetatothen igual a 1, 1 / beta, 1 / beta2, 1 / beta3. Multiplicar elementwise dinput por d1overbetatothen Realizar una inclusivescan para obtener la secuencia de la yn / betan Divide la secuencia anterior por 1, 1 / beta, 1 / beta2, 1 / beta3. El enfoque anterior puede recomendarse para sistemas lineales de variación de tiempo (LTV). Para los sistemas Linear Time-Invariant (LTI), el enfoque FFT mencionado por Paul puede ser recomendado. Im que proporciona un ejemplo de ese acercamiento usando CUDA Thrust y cuFFT en mi respuesta al filtro del FIR en CUDA. El filtro bajo es el filtro windowed de la clase linear, eso alisa la señal (imagen). El filtro funciona como un paso bajo. La idea básica detrás del filtro es que cualquier elemento de la señal (imagen) toma un promedio en su vecindario. Si tenemos una matriz mxn y queremos aplicar un filtro medio con el tamaño k, entonces para cada punto de la matriz p: (i, j) el valor del punto sería el promedio de todos los puntos en el cuadrado Esta cifra es Para el núcleo cuadrado de filtrado con el tamaño 2. que el cuadro amarillo es el píxel a promediar, y toda la cuadrícula es el cuadrado de los píxeles vecinos, que el valor de píxeles nuevo será el promedio de ellos. El problema es que este algoritmo es muy lento, especialmente en las imágenes grandes, así que pensé en usar GPGPU. La pregunta ahora es. ¿Cómo se puede implementar en cuda, si es posible? Este es un caso clásico de problema de procesamiento de imagen paralelo embarazoso que puede ser muy fácilmente asignado al marco CUDA. El filtro de promedio es conocido como filtro de caja en dominios de procesamiento de imágenes. El enfoque más fácil sería utilizar texturas CUDA para el proceso de filtrado, ya que las condiciones de frontera pueden ser manejadas muy fácilmente por texturas. Suponiendo que tenga los punteros de origen y destino asignados en el host. El procedimiento sería algo como esto. Asigne suficiente memoria suficiente para mantener las imágenes de origen y de destino en el dispositivo. Copia la imagen de origen del host al dispositivo. Vincule el puntero del dispositivo de imagen de origen a la textura. Especifique un tamaño de bloque adecuado y una cuadrícula lo suficientemente grande para cubrir cada píxel de la imagen. Inicie el núcleo de filtrado utilizando la rejilla especificada y el tamaño del bloque. Copie los resultados de nuevo a host. Desvincular la textura Punteros de dispositivo libre. Implementación de la muestra de filtro de caja La buena noticia es que usted no tiene que implementar el filtro usted mismo. El CUDA Toolkit viene con una biblioteca gratuita de procesamiento de imágenes y señales llamada NVIDIA Performance Primitives aka NPP, fabricada por NVIDIA. NPP utiliza GPU habilitadas por CUDA para acelerar el procesamiento. El filtro de promedio ya está implementado en NPP. La versión actual de NPP (5.0) tiene soporte para imágenes de 8 bits, 1 canal y 4 canales. Las funciones son: nppiFilterBox8uC1R para una imagen de canal. NppiFilterBox8uC4R para la imagen de 4 canales. Respondió Jan 15 13 a las 10:50 Su respuesta parece ser muy buena, pero realmente no soy consciente de lo que usted está describiendo allí arriba, ya que el programa principalmente en matlab, y I39ve buen conocimiento sobre la programación C, lo que necesito es un Código, creo que el prototipo de la función del kernel sería: void global ApplyAverageFilter (int Image, int Result, int filterSize). Necesito ayuda con el código. Ndash Sameh Kamal Jan 15 13 a las 10:56 Oh. He actualizado mi respuesta y agregado un enlace para el kernel CUDA para el filtro de caja. Pero tienes que aprender CUDA primero para usarlo. De lo contrario NPP es una mejor opción si usted don39t tiene mucho fondo CUDA. Ndash sgarizvi Jan 15 13 at 10:59 Si el tamaño de los filtros es normal y no humongous, el filtro promedio es un muy buen caso para la aplicación con CUDA. Puede configurarlo con bloques cuadrados y cada hilo del bloque es responsable del cálculo del valor de un píxel, sumando y promediando sus vecinos. Si almacena la imagen en la memoria global, puede programarse fácilmente, pero tendrá muchos conflictos bancarios. Una posible optimización es que se cargan bloques de la imagen en los bloques Memoria compartida. El uso de elementos fantasma (para que no exceda las dimensiones de los bloques compartidos cuando se buscan píxeles vecinos) se puede calcular el promedio de los píxeles dentro de un bloque. Lo único que hay que tener cuidado es cómo se realizará la costura al final, porque los bloques de memoria compartida se superpondrán (debido a los píxeles de relleno adicionales) y no desea calcular sus valores dos veces. (CUDA) recibe recomendación promedio de 8220Buy8221 de corretajes Las acciones de Barracuda Networks Inc. (NYSE: CUDA) se han asignado una recomendación de consenso de 8220Buy8221 de los veinte Analistas que están cubriendo la empresa. Tres analistas de inversión han calificado la acción con una calificación de venta, cinco han dado una calificación de retención, diez han asignado una calificación de compra y dos han dado una calificación de compra fuerte a la empresa. El promedio de 12 meses de los objetivos de precios entre los corredores que han cubierto las acciones en el último año es de 26,22. Varios analistas han comentado recientemente sobre las acciones de CUDA. Rosenblatt Securities inició la cobertura de Barracuda Networks en un informe el lunes 1 de agosto. Establecieron una calificación 8220buy8221 y un objetivo de precio de 30.00 para la compañía. Vetr bajó Barracuda Networks de una calificación 8220hold8221 a una calificación 8220sell8221 y fijó un precio objetivo de 21.50 para la compañía. En una nota de investigación el lunes 1 de agosto. DA Davidson bajó Barracuda Networks de una calificación 8220neutral8221 a una calificación 8220underperform8221 y elevó su precio objetivo para la acción de 17.00 a 19.50 en una nota de investigación el viernes 12 de agosto. Señalaron que la medida era una llamada de valoración. Pacific Crest actualizó Barracuda Networks de una calificación 8220sector weight8221 a una calificación 8220overweight8221 y elevó su precio objetivo para la acción de 23.27 a 30.00 en una nota de investigación el martes 30 de agosto. Finalmente, Zacks Investment Research rebajó Barracuda Networks de 8220strong-buy8221 a 8220hold8221 en una nota de investigación el miércoles 7 de septiembre. Barracuda Networks (NYSE: CUDA) abrió sus puertas a las 24.08 horas del lunes. La acción tiene una capitalización bursátil de 1,26 mil millones, una relación P / E de 185,23 y una beta de 3,62. Barracuda Networks tiene un mínimo de 12 meses de 9.44 y un máximo de 12 meses de 26.69. La acción tiene un precio medio móvil de 50 días de 24.02 y un precio medio móvil de 200 días de 20.62. Barracuda Networks (NYSE: CUDA) emitió por última vez sus datos trimestrales sobre ganancias el martes 11 de octubre. La compañía informó 0,21 EPS para el trimestre, superando la estimación de consenso de 0,13 por 0,08. Barracuda Networks tuvo una rentabilidad negativa sobre el patrimonio de 56,63 y un margen neto de 2,03. La firma ganó 87,90 millones durante el trimestre. Durante el mismo trimestre del año anterior, la compañía registró 0,10 EPS. Los ingresos del negocio8217s para el cuarto eran encima 12.1 sobre una base year-over-year. Los analistas de acciones predicen que Barracuda Networks registrará 0,69 EPS para el año fiscal en curso. En otras noticias de Barracuda Networks, el SVP Michael D. Hughes vendió 4,468 acciones de la firma 8217s en una transacción que ocurrió el jueves 1 de septiembre. Las acciones se vendieron a un precio promedio de 23,33, por un valor total de 104.238,44. Después de la transacción, el vicepresidente senior ahora posee directamente 113.981 acciones de la compañía 8217s acciones, valoradas en aproximadamente 2.659.176,73. La transacción fue revelada en una presentación ante la Securities amp Exchange Commission, la cual está disponible en el sitio web de la SEC. Asimismo, el mayor accionista Dean M. Drako vendió 146.232 acciones de la firma 8217s en una transacción que ocurrió el miércoles 24 de agosto. La acción fue vendida a un precio promedio de 22.01, para una transacción total de 3.218.566,32. La divulgación de esta venta se puede encontrar aquí. 39.60 de las acciones son propiedad de personas jurídicas corporativas. Una serie de fondos de cobertura y otros inversores institucionales han añadido recientemente o reducido sus participaciones en la empresa. Parametric Portfolio Associates LLC elevó su posición en Barracuda Networks en 0,7 en el segundo trimestre. Parametric Portfolio Associates LLC ahora posee 38.620 acciones de la compañía 8217s valor de 585.000 después de comprar 271 acciones adicionales durante el período. California State Teachers Retirement System elevó su participación en Barracuda Networks en 0,9 en el tercer trimestre. California State Teachers Retirement System ahora posee 46.551 acciones de la compañía 8217s acciones valoradas en 1.186.000 después de comprar 400 acciones adicionales durante el último trimestre. Banco de Nueva York Mellon Corp aumentó su participación en Barracuda Networks en 3.2 en el tercer trimestre. Banco de Nueva York Mellon Corp ahora posee 84.041 acciones de la empresa 8217s acciones valoradas en 2.142.000 después de comprar un adicional de 2.596 acciones durante el último trimestre. BlackRock Advisors LLC elevó su participación en Barracuda Networks en 60.8 en el segundo trimestre. BlackRock Advisors LLC ahora posee 10.312 acciones de la compañía 8217s acciones valoradas en 156.000 después de comprar un adicional 3.900 acciones durante el último trimestre. Por último, US Bancorp DE aumentó su participación en Barracuda Networks en 199,2 en el segundo trimestre. US Bancorp DE ahora posee 7.057 acciones de la compañía 8217s acciones valoradas en 107.000 después de comprar un adicional 4.698 acciones durante el último trimestre. 55,42 de las acciones son actualmente propiedad de inversores institucionales y fondos de cobertura. Acerca de Barracuda Networks Barracuda Networks, Inc diseña y ofrece soluciones de seguridad y protección de datos. La compañía ofrece soluciones habilitadas para la nube que permiten a los clientes abordar las amenazas de seguridad, administrar el rendimiento de la red y proteger y almacenar sus datos. Sus soluciones están diseñadas para gestionar las operaciones de tecnología de la información para sus clientes. Reciba Noticias de Barracuda Networks Inc. Daily - Ingrese su dirección de correo electrónico a continuación para recibir un resumen conciso de las últimas noticias y analistas de Barracuda Networks Inc. y acciones relacionadas con nuestro boletín de noticias diario GRATIS.
No comments:
Post a Comment