Acerca del servicio
TraducidoDesarrollo núcleos numéricos de alto rendimiento en Futhark, un lenguaje puramente funcional y paralelo que se compila en CUDA y OpenCL. Si tienes un bucle caliente, simulación o un gran volumen de operaciones de matriz que está alcanzando el límite de la CPU, lo reescribiré para que se ejecute en la GPU y no tendrás que escribir una sola línea de código de dispositivo de bajo nivel a mano. Futhark proporciona fuertes garantías: sin efectos secundarios, sin sorpresas de aliasing, y el compilador mismo fusiona operaciones de mapa, reducción, escaneo y segmentadas en núcleos compactos. El flujo de trabajo típico es el siguiente. Primero perfilo tu pipeline actual y encuentro secciones que son verdaderamente paralelas. Luego las expreso en Futhark a través de combinadores puramente funcionales, preservando la legibilidad y el determinismo. Comparo el resultado con tu versión base, ajusto los tamaños de bloque y los patrones de acceso a la memoria e itero hasta que los números sean convincentes. Finalmente, incrusto todo de nuevo en tu pila: Futhark genera una biblioteca en C y la envuelvo para que puedas llamarla desde Python a través de ctypes o una pequeña extensión, o vincularla directamente en un programa anfitrión en C o C++. A lo largo de los años he acelerado la valoración de opciones de Monte Carlo, filtros de imagen y señal, plantillas físicas, procedimientos de álgebra lineal y preprocesamiento para aprendizaje automático. Obtienes código fuente limpio, un script de construcción, un conjunto de pruebas que verifica la salida de la GPU contra una línea base, resultados de referencia y una breve nota sobre cómo reconstruir y extender el código. Describe la tarea y el hardware objetivo, y estimaré la aceleración real antes de que empecemos.