Actualidad y sociedad
33 meneos
400 clics
Ya conocemos el secreto de la extrema eficiencia de DeepSeek: ha esquivado el estándar CUDA de NVIDIA

Ya conocemos el secreto de la extrema eficiencia de DeepSeek: ha esquivado el estándar CUDA de NVIDIA

Los ingenieros de DeepSeek han decidido utilizar PTX para sacar el máximo partido posible a las GPU H800 Una de sus estrategias ha consistido en asignar solo 20 SM de cada GPU a la comunicación entre los servidores

| etiquetas: deepseek , nvidia , ia
Comentarios destacados:                
#3 En resumen, lo han programado en ensamblador, lo cual corrobora por enésima vez que los lenguajes de alto nivel son ya el peor cáncer de las tecnologías del conocimiento.
En resumen, lo han programado en ensamblador, lo cual corrobora por enésima vez que los lenguajes de alto nivel son ya el peor cáncer de las tecnologías del conocimiento.
#3 Gracias a los lenguajes de alto nivel, catetos como yo podemos hacer chapucillas para salir del paso.
#4 Lo cual le da la razón a #3
#7 Todo lo contrario, los científicos usan Python porque si te has tirado cinco años estudiando Biotecnología igual no te ha dado tiempo a sacarte la ingeniería que pretendes que tenga para hacer un pequeño programa para rastrear datos de un par de tablas y operar con ellos.
#9 ¿Se requiere ser ingeniero para programar en ensamblador?, ¿y para programar en Fortram? ...
#14 Se requiere ser cirujano para hacer operaciones de páncreas?. Realmente no, sólo necesitas bisturí y una víctima. (y un par de videos de youtube)
#16 Realmente no hace falta ser ingeniero para hacer maravillas en ensamblador. ¿conoces el mundo de la demoscene?
#9 ¿Y quien dice que tenga que ser la misma persona la que haga las dos cosas?
Para hacer un programa puntual puedes salir al paso con cualquier lenguaje. Pero cuando haces algo que se va a ejecutar en millones de dispositivos la eficiencia es fundamental.
#4 Esto es como todo, no hay herramienta mala. Solo hay que seleccionar la adecuada para el trabajo.

Si lo que buscas es rendimiento, ensamblador + C.
#10 Ya hemos matado a Rust?
Es por si me pongo con ello o paso
#4 Si le preguntas a Deepseek, verás como te dice que está programada mayoritariamente en Python.

Te explica hasta que librerías OpenSource utiliza
#20 Pregunta bien:

"Mi núcleo y las partes más críticas de mi funcionamiento están implementados en C/C++, ya que estos lenguajes ofrecen un mayor control sobre el hardware y un rendimiento optimizado, lo cual es esencial para tareas intensivas como el procesamiento de lenguaje natural (NLP) y el manejo de grandes volúmenes de datos. Sin embargo, las capas más externas y las interfaces de programación suelen estar escritas en Python, ya que es más flexible y fácil de usar para integrar

…   » ver todo el comentario
#23 El C y el C++ son leguajes compilados, no lenguaje ensamblador.

Preguntandole más detalles:

A continuación, te proporciono una lista de los lenguajes de programación que se utilizan comúnmente en el desarrollo de modelos de inteligencia artificial como yo, junto con una estimación aproximada del porcentaje de uso de cada uno. Ten en cuenta que estos porcentajes son estimaciones y pueden variar según el proyecto y el equipo de desarrollo:

Python (~70-80%):

Python es el

…   » ver todo el comentario
#26 Python se usa para construir modelos porque es muy fácil de usar, pero si quieres implementar algo comercial, rápido, potente y eficiente, olvídate de un lenguaje interpretado.
En los desarrollos que yo hago la diferencia de velocidad de C y Pyhton es bestial. Digamos que para la misma cosa C la hace en 20 minutos, y Python en alrededor de 32 horas.
#28 Los datos muestran que Python es usado mayoritariamente en el área de la IA.

Cada lenguaje debe ser usado en su ámbito. El lenguaje C no está diseñado para desarrollar la capa de funciones de IA.

Y DeepSeek no dice que se use C, sino C++ y Rust
#30 El interprete de Python esta programado en C/C++ internamente, asi que si, puedes programar funciones de IA en C/C++ directamente sin la capa de Python... os olvidais que siempre se tiene que ejecutar el software en un hardware, y para conectarlo tienes que hacer uso de funciones del sistema que te conecten el software con el hardware, y C/C++ es el enlace perfecto entre alto nivel y bajo nivel...
#32 Y el lenguaje C se traduce en lenguaje máquina, así que técnicamente todo podría ser programado en lenguaje máquina, pero no se hace.

la realidad es que mayoritariamente se usa Python, salvo para las parte que la eficiencia de C++/Rust es necesaria.
#33 No es lo mismo compilado que interpretado...

C/C++ se compilan: es decir, cuando generas el .dll, .exe o .so o el ejecutable que sea, generas codigo objeto directamente optimizado para el procesador o arquitectura en cuestion.

En Python y otros lenguajes interpretados o que requieran una maquina virtual, es la maquina virtual la que va traduciendo las instrucciones al hardware segun va ejecutandose el codigo y por ello es mas lento y menos eficiente que C/C++...

Es mas, en codigo C++ puedes meter desde codigo de alto nivel (lambdas, variables auto, smart pointers, etc) hasta de bajo nivel como ensamblador especifico para una arquitectura concreta y compilarlo...

Asi que no, no es lo mismo interpretar que compilar...
#37 Eso lo se perfectamente, y que los lenguajes de alto nivel permiten desarrollar código más complejo, con menos errores y de forma más rápida y fácil. También he programado muchos años, tanot con C, como con Java, Javascript...

La realidad es el lenguaje más usado para programar IAs es Python, salvo algunas partes de infraestructura que necesitan lenguajes de más bajo nivel.
#38 C++ es alto nivel y bajo nivel a la vez...
C++ moderno me refiero... la libreria STL ha introducido infinidad de nuevas historias de alto nivel: smart pointers, lambdas, variables auto, bucles for y foreach mejorados, etc etc etc... y sigues teniendo el acceso a bajo nivel de siempre o usar cosas de C pero aprovechando la Orientacion a Objetos. Asi que C++ es el lenguaje mas completo de hoy en dia...
#39 Qué sí, que sabes mucho de C y C++.

Pero el lenguaje usado en la IA es mayoritariamente es Python. Y lo usan todos, sean occidentales o chinos.
#40 el lenguaje usado en la IA es mayoritariamente es Python ... creo que se te ha olvidado mencionarlo .... :troll:

repetir algo 20 veces no es argumentar
#48 A ver si me explico.

Tu problema es que solo sabes C, un lenguaje viejuno, y quieres creer que podrías estar en el sector de moda que es la IA.

No es así. Empresas como Google son capaces de desarrollar en cualquier lenguaje, incluso desarrollan lenguajes nuevos cuando lo necesitan. Y utilizan Python para desarrollar la IA.
En Google trabajan algunos de los padres de la IA generativa, saben más del tema que todo MnM junto.
#30 Luego que si la IA está consumiendo cantidades enormes de energía... pero no me quitéis el Python que sino programar es muy difícil.
#28 Los programadores mediocres siempre defenderán Python, por razones obvias
#4 ese es precisamente el problema
#3 Como anécdota, uno de los clones más recalcitrantes de los últimos años, con más de 50 autorreplicaciones, un antichino y clasista, también solía hacer mofa de los programadores que sabían ensamblador. Si me da tiempo a ver si recupero algún comentario.
www.meneame.net/story/verguenzas-propaganda-putin-descubierto/c024#c-2
www.meneame.net/story/estados-unidos-israel-profundizaran-colaboracion

Samay, AlvaroVicente, Seid, Bierce, Juancadiz,…   » ver todo el comentario
#6 Que va a ser, ¡que ha cambiado de nombres! xD
#6
Joder ! Qué seguimiento le has hecho !
#6 Estará reclonandose. :troll:
#6 En una ocasión que alguien publicó una lista de usuarios en Menéame, la cosa no terminó nada bien

Sí, soy uno de los que sobrevivieron a eso
#29 Ya. Pero esto no es una lista de usuarios. Es una lista de un único usuario. Clónico, eso sí.
#3 Muchas letras para decir Java :troll:
#3 Eso tiene varias aristas. Si bien ganas mucho usando instrucciones en ensamblador también te atas profundamente a unos modelos de procesadores (nvidia) perdiendo la posibilidad de trasladar la programación a otros procesadores con facilidad a la par que un desarrollo mas lento.

Por otra parte, y esto es una opinión personal, el problema no es tanto el uso de lenguajes de medio nivel como c/c++ como el uso de Wrappers para usar lenguajes de alto nivel en vez de c/c++, y así avanzar mas rápido pero a costa de una mayor cantidad de proceso.

"Por medio de wrappers se puede usar Python, Fortran, Julia y Java en vez de C/C++."

es.wikipedia.org/wiki/CUDA
#12 Cuando un software se va a ejecutar en millones de dispositivos la eficiencia es fundamental, la diferencia en millones de toneladas de CO2 emitidas por el gasto extra de energía puede ser considerable, sobre todo si hablamos de IA.
#44 "Cuando un software se va a ejecutar en millones de dispositivos la eficiencia es fundamental"

No. Cuando un software se va a ejecutar en millones de dispositivos lo fundamental es la compatibilidad de la aplicación con los diferentes dispositivos. Sin eso no tienes nada.
#50 No son cosas excluyentes, falacia de falso dilema
#51 ¿Que falso dilema? Yo no te he dado a elegir nada.

Ni siquiera sabes lo que es un falso dilema.
#52 Lo has expuesto como si la compatibilidad con diferentes dispositivos fuera algo que implica programar de forma ineficiente
#53 Para nada. Yo he dicho que la compatibilidad es esencial en el caso que tu expusiste del uso en millones de dispositivos no el consumo de energia como tu dijiste.

Yo soy responsable de lo que digo no de lo que tu entiendas.
#54 He dicho yo que la compatibilidad no es esencial?,
#55 No. Has dicho que "la eficiencia es fundamental cuando se va a usar en millones de dispositivos" y no lo es.

Que es importante: Si. Que es fundamental, no. Fundamental es que sea compatible.
#56 www.nytimes.com/es/2024/07/19/espanol/ia-energia-cambio-climatico.html

Usar lenguajes de mierda como el Python, es el problema por eso DeepSeek les ha dado una hostia en toda la cara ChatGPT y demás.
Python es como el BASIC (Beginners' All-purpose Symbolic Instruction Code) de los 80, un lenguaje malo, ineficiente e interpretado. Pero muy popular para que muchos programadores mediocres se crean que saben programar. Pero en una situación de crisis energética, de dispositivos que…   » ver todo el comentario
#57 "Python es como el BASIC (Beginners' All-purpose Symbolic Instruction Code) de los 80, un lenguaje malo, ineficiente e interpretado. Pero muy popular para que muchos programadores mediocres se crean que saben programar. Pero en una situación de crisis energética, de dispositivos que dependen de baterías, la eficiencia es clave. El programador mediocre seguirá defendiendo su mierda de lenguaje a pesar que sea 30 veces más lento que lenguajes más cercanos a la máquina

…   » ver todo el comentario
#58 Si vas a hacer una app de mierda para una empresucha pues la programas con lo que quieras y mientras funcione y el hardware pueda con ella pues ok. Pero cuando se desarrolla un sistema operativo, un codec de vídeo , el motor gráfico de videojuegos.... que se van a ejecutar en millones de equipos en todo el mundo pue sí. tiras de ensamblador si hace falta o por lo menos lenguajes de bajo nivel (sí esos que son un dolor de huevos para los programadores mediocres) , sobre todo en las partes…   » ver todo el comentario
#59 "Si te parece un dolor de huevos usar esos lenguajes , pues nada , de dedícate ha hacer apps cutres para empresuchas que les de igual, o vete a trabajar a la hostelería.!

Destilas superioridad hasta por las orejas.

Habra que decir a los de wikipedia o wordpress que la hagan en c en vez de en PHP que sino son empresuchas.

O Pinterest, Dropbox, spotify, Netflix, Uber, Reddit, Google, Youtube que dejen de usar python que sino son empresuchas
#60 Esos buenos ejemplos de despilfarro, luego se quejarán que los chinos les pasen la polla por la cara. Las aplicaciones cada vez requieren más hardware para hacer prácticamente lo mismo que hacían antes. Revisa el software que se hacía en los años 80 90, y mira a ver si puedes hacer con Python algo que se le parezca sin usar 100 veces más memoria 200 veces más CPU y 500 veces más espacio de almacenamiento.
#3

Te piensas tú que no se pueden hacer chapuzas en ensamblador ...

Otra cosa es que se hagan programas en alto nivel cuya optimización es cero o inferior ...
#3 Trabajo de chinos.
#3 Sólo recordar mis años de programador en ensamblador, me entran sudores fríos.

Lenguaje duro de pelotas y que para todo, te tocaba la nariz el vocado de pila.

Si lo han usado hoy en día, mis alabanzas a los tipos, porque tela marinera el lenguaje de marras.
#35 Ya verás cuando se empiecen a depurar códigos con la IA. Nos va a sobrar almacenamiento y computación como para no tener que fabricar ni un ordenador más. xD
#3 A los Pythoners no les gusta tu comentario...
Bueno, secreto...secreto....creo que la info ha sido pública ¿No?
#1 Antes se prefiere creer en una conspiracion , que hacen trampas que "roban" graficas , que lo que parece que han logrado.
En vez de valorar lo que han hecho y ver si es replicable para ahorrar un pastizal se prefiere mentir tergiversar o inventar.
Pero no es la primera vez ni la ultima.
La realidad es que una cosa es lo que se dice y otra lo que se hara si es replicable el salto para todos con los mismos recursos sera visible en relativamente poco tiempo.
#1 Viene de Xataka, son los reyes del clickbait.

Aún así, es cierto que mientras no se explica al público lego y alejado de los papers parece que fuera un oscuro secreto misterioso.
Lo que los "expertos" de Xataka no explican es que PTX también es de nvidia, solo que trabaja a medio nivel, y no a alto como cuda, pero siguen sin salirse de nvidia.
Las universidades de EEUU confirmaron los avances de Deepseek y por eso cayeron las cotizaciones.

Microsoft ya ofrece la IA de Deeseek como servicio.

Las redes sociales no son la realidad. Hay mucha gente sería en la industria de IA en EEUU.
La mayor parte de los proyectos de IA que se están desarrollando actualmente están implementados sobre CUDA. Esta tecnología aglutina el compilador y las herramientas de desarrollo utilizados por los programadores para desarrollar su software para las GPU de NVIDIA, y reemplazarla por otra opción en los proyectos que ya están en marcha es un problema.

Y de un plumazo ponen a OpenAI en la casilla de salida
Eso demuestra el alto nivel que tiene los chinos...
ChatGPT, a partir de ahora te llamaré Botijo.
Botijo, convierte este código CUDA a código PTX y optimiza al máximo su rendimiento.
E ya.

menéame