¿Cuáles son los beneficios de aprender sobre arquitectura de computadoras para una carrera en codificación?

Hay muchos beneficios en el aprendizaje de la arquitectura de computadoras para codificadores. Tocaré algunos de esos.

El almacenamiento en caché es ahora un aspecto muy fundamental en la mayoría de las computadoras. El tamaño de la caché en el chip determina la cantidad de datos que se pueden incorporar al chip para su procesamiento. Conocer este tamaño puede permitir que un programador procese datos en fragmentos, donde los fragmentos pueden caber fácilmente en la memoria caché. Esto da como resultado más hits de caché, lo que aumenta el rendimiento del programa.

El tamaño de la línea de caché también es importante. La mayoría de los programadores suelen hacer un malloc () para asignar memoria. Sin embargo, estos fragmentos asignados pueden no encajar en el tamaño de la línea de caché (que actualmente es de 64 bytes), lo que da como resultado líneas redundantes en el chip. Esto puede mitigarse utilizando, por ejemplo, posix_memalign (), que alinea todos los bloques asignados por el tamaño especificado (64 bytes serían óptimos)

El tamaño de la memoria de la GPU restringe la cantidad de datos que pueden permanecer en una GPU. El uso de bloques más grandes para procesar en una GPU dará como resultado que la GPU solicite datos de la memoria principal, que tiene una latencia muy alta. Esto ralentiza el programa e incluso puede matar la velocidad proporcionada por la GPU. Por lo tanto, un programador debe asignar bloques que puedan caber completamente en la GPU.

La tarjeta Intel Xeon Phi ahora ofrece a los programadores el uso de más núcleos. La tarjeta en sí tiene una memoria limitada y, por lo tanto, los bloques deben asignarse en consecuencia. Puede ejecutar el código x86 en la Phi, en lugar de convertir su código para que se ejecute en la GPU. El Phi tiene sus propias limitaciones, pero desde el punto de vista de la arquitectura, si uno necesita usar más núcleos (fuertes que deben ser menos en cantidad que los de una GPU) que probablemente sea una buena opción.

Los códigos también pueden encontrar otros ajustes en la red en chip, la capacidad ALU, las jerarquías de caché, las APU, las capacidades RISC / CISC, el hardware de soporte criptográfico y muchas otras cosas que pueden usar, o deben tener en cuenta, al codificar arriba. Entonces, si un programador tiene conocimiento de APU, bloques de cifrado, etc., entonces el programador puede ser un muy buen activo para una empresa, ya que puede explotar completamente los recursos computacionales de la empresa.