¿Cómo calculan las CPU / GPU funciones matemáticas especiales como sin, cos y sigmoid?

Como han sugerido las otras respuestas, es cierto que el hardware inherentemente es “tonto” y en cierto modo solo realiza ciertas operaciones. Sin embargo, ha habido mentes brillantes en el campo del diseño de hardware que han presentado ideas radicales para implementar funciones de trigonometría en el hardware también.

¿Difícil de creer?

¡Simplemente haga una búsqueda rápida en Google del término CORDIC!

Por lo tanto, todos conocemos las limitaciones del sistema binario y la cantidad de operaciones en el hardware, pero una mente tan brillante en una persona que se conoce con el nombre de Mr. Jack E. Volder ideó un algoritmo iterativo para calcular la rotación de coordenadas. y generar diversas funciones de trigonometría.

Todo esto ocurrió en el año 1956 mientras el Sr. Volder trabajaba en Convair en el grupo de aeroeléctrica. De hecho, esta increíble idea se utilizó para construir sistemas de navegación en el bombardero B-58.

CORDIC significa Computadora digital de rotación de coordenadas, que es esencialmente un conjunto de operaciones de comparación, desplazamiento y adición en hardware. En cuanto a cómo se ve el diseño, solo tendrá que visualizar un montón de bancos de flip-flop, cuyo número depende de las etapas del algoritmo considerado y algunos sumadores en cada etapa con algunos comparadores en el medio. Simplemente busque el documento del Sr. Volder y podrá visualizar el hardware en función de las ecuaciones que utilizó para realizar sus cálculos.

Por supuesto, podemos hacer que el software realice tareas tediosas de cálculo de la serie Taylor y lo que no sea, pero el hardware dedicado siempre es inmensamente rápido en comparación con cualquier implementación de software.

CORDIC se puede extender para calcular funciones logarítmicas y funciones exponenciales. Esas pequeñas calculadoras de mano que usa para calcular sus funciones de trigonometría, ¿adivina qué tienen en ellas?

Hoy en día, el hardware electrónico es capaz de realizar una amplia variedad de cálculos debido a la contribución del Sr. Volder y muchos otros que han sido fundamentales para mejorar el algoritmo CORDIC utilizando matemática y extensión de punto flotante y fijo para generar muchas más funciones matemáticas de las que originalmente se concibieron.

Espero que esta respuesta lo lleve a buscar maravillas más asombrosas provenientes de los maravillosos cerebros de los ingenieros electrónicos.

¡¡Salud!!

Esto se hace en la capa de software. Todas las unidades de procesamiento pueden hacer sumas, restas (que es prácticamente una suma con números negativos) y quizás en algunas arquitecturas, multiplicaciones y divisiones.

Entonces, ¿cómo calculamos funciones tan complejas usando algunas operaciones elementales?

Aquí está la belleza de las matemáticas que resulta útil, para el seno y el coseno y otras funciones trigonométricas podemos representarlas en la expansión de la serie Taylor que se aproxima a esas funciones complejas utilizando algunas combinaciones de polinomios que son fáciles de manejar en nuestro caso. para las otras funciones como logarítmica y exponencial ….. etc.

También hay una rama de las matemáticas llamada Análisis numérico que se ocupa de los cálculos aproximados mediante la simplificación de los problemas en algoritmos que las computadoras pueden hacer.

More Interesting

Para una inteligencia artificial, ¿qué es la regresión simbólica no lineal?

¿Por qué las computadoras no funcionan con tres estados o más?

¿Puedes convertir una consola de juegos en una computadora?

En la historia de la computación, ¿quién era el científico que se sorprendió al descubrir que las máquinas en su laboratorio se comunicaban entre sí?

¿Existen universidades / colegios en la India que sean buenos para obtener una maestría en aprendizaje automático?

¿Cómo cubren los aspirantes GATE temas a un ritmo tan rápido?

¿Cuáles son algunos ejemplos de redes neuronales en Python?

¿Puede explicar, en términos simples y con ejemplos, qué funciones sapply () y lappy () hacen en R?

¿Se puede reducir el problema de la clasificación al problema de unicidad del elemento?

En el aprendizaje automático, ¿debería concentrarme más en las matemáticas o está bien entender cómo funcionan los algoritmos y omitir algunas matemáticas complicadas?

Cómo saber si alguien está usando mi computadora en mi ausencia

¿Cuál es el programa de afiliación más rentable?

Sé que las máquinas solo pueden entender 1s y 0s. ¿Alguien puede ayudar a comprender cómo se almacenan y recuperan las imágenes, los videos y todo lo demás en fracciones de segundos cuando una máquina puede entender solo 1s y 0s?

Tengo un proyecto de software que tiene una fecha límite para la próxima semana pero todavía necesito un mes más para terminarlo, ¿cómo debo decirle a mi jefe?

¿Cuál es la mejor práctica para 'portar' modelos de Machine Learning (especialmente aprendizaje profundo) de Python a sistemas integrados para aplicaciones como visión artificial?