Por qué los turnos son mejor unidad angular que los radianes

Este artículo técnico sostiene que, en el código de programación, sustituir π por τ (2π) fue una mejora menor comparada con la posibilidad de eliminar directamente los radianes. El autor argumenta que la práctica habitual de multiplicar valores por π o τ para llamar a las funciones trigonométricas y

Por qué CBQN supera a C++ y Rust en operaciones sobre cadenas binarias

CBQN, el compilador principal del lenguaje de programación BQN, logra tiempos de ejecución muy inferiores a los de C++ y Rust en algoritmos que manipulan cadenas formadas exclusivamente por los caracteres '0' y '1', según un análisis técnico publicado en el repositorio de GitHub "max-odd-binary". La

Mejoras en std::simd::swizzle_dyn: rendimiento y portabilidad

El artículo analiza las limitaciones actuales de la función std::simd::swizzle_dyn de Rust, una primitiva SIMD que reorganiza elementos dentro de un vector en tiempo de ejecución. El autor, mantenedor del proyecto Fearless SIMD, describe tres problemas concretos. Primero, la implementación solo apro

Todos los programadores deberían conocer SIMD

SIMD, siglas de Single Instruction, Multiple Data, es una técnica de la CPU que permite ejecutar una misma operación sobre múltiples datos en paralelo: en lugar de comparar un byte por ciclo, el procesador puede comparar 4, 8 o más bytes con una sola instrucción. Aunque goza de fama de compleja y re

Box3D aplica SIMD a la detección de colisiones con cascos convexos complejos

El motor de física Box3D incorpora optimizaciones SIMD (instrucciones vectoriales) en su algoritmo de detección de colisiones para reducir el coste del test de ejes de separación (SAT) entre cascos convexos en tres dimensiones. El autor parte de una técnica previa de SIMD "ancho" usada en el solver

Optimización de GEMM en FP32 logra 85,30 GFLOPS en un solo núcleo de AMD Zen 3

Un estudio técnico explora de forma sistemática la optimización de la multiplicación de matrices en precisión simple (FP32) sobre un AMD Ryzen 5 5500, basado en la microarquitectura Zen 3. El trabajo evalúa 28 configuraciones distintas que combinan técnicas de bajo nivel: bloqueo de caché en tres ni

Árboles de búsqueda estáticos: 40 veces más rápidos que la búsqueda binaria

Este artículo técnico presenta la implementación y optimización de un árbol de búsqueda estático (S+ tree) para localizar datos ordenados con un rendimiento muy superior al de la búsqueda binaria clásica. Partiendo de la idea introducida en Algorithmica, el autor parte de un código base y lo somete

misa77: un códec LZ con descompresión hasta tres veces más rápida que LZ4

misa77 es un códec de compresión basado en algoritmos LZ orientado al nicho de datos que se escriben una vez y se leen muchas veces. Su objetivo principal es ofrecer una velocidad de descompresión muy alta en un solo hilo, con un uso de memoria constante e independiente del tamaño de la entrada: com

AVX2 frena emulación de Windows en ARM

Un ingeniero de RemObjects descubrió que compilar aplicaciones para AVX2 resulta en un rendimiento más lento que compilar para SSE2-4.x en Windows ARM cuando se ejecuta bajo la emulación Prism. Esta conclusión, contraintuitiva, surge de pruebas de rendimiento de benchmarks matemáticos en Windows ARM