Lo que los mineros de GPU pueden no saber sobre ProgPoW

Hoy en día hay bastantes rumores sobre la implementación (o no implementación) del algoritmo de minería ProgPoW en la cadena principal de Ethereum.
Si sucederá o no, no se discutirá en este artículo.

Siendo el desarrollador que más trabajó en la integración de Pro g PoW en ethminer, creo que hay algunos aspectos que los mineros de GPU no conocen bien: ven en ProgPoW el solución para deshacerse del dominio de ASIC (entrante). Desafortunadamente, muchos de los aspectos técnicos sobre qué es exactamente ProgPoW y cómo funciona pueden no ser bien conocidos y pueden causar algunos problemas al intentar encontrar el mejor ajuste posible para sus GPU.

Aquí puede encontrar una descripción técnica detallada de los desarrolladores originales del algoritmo. Sin embargo, se necesitan algunas explicaciones adicionales ya que, cuanto más hablo con los mineros, más confusos parecen.

Qué es ProgPoW.

ProgPoW es un acrónimo de Prueba de trabajo programable. Pero su verdadera definición completa debería ser Ethash / ProgPoW . De hecho, ProgPoW es una capa hash programable adicional construida sobre el conocido algoritmo ethash. La palabra clave es “programable”: mientras que el ciclo ethash repite un ciclo constante de instrucciones que nunca se modifica (además del hecho de que esas instrucciones acceden a un área de memoria, llamada DAG, que crece en tamaño cada nueva época, que es de 30k bloques), ProgPoW está diseñado de tal manera que el proceso de la CPU (CPU) genera un nuevo conjunto de instrucciones (matemáticas), con un nuevo orden de ejecución, cada 50 bloques (es decir, cada 12,5 minutos aproximadamente). La nueva “fuente” se compila luego en un núcleo de búsqueda (CUDA / OpenCL) y se inserta en la GPU que inicia el trabajo de hash. En resumen: la CPU genera un nuevo kernel cada 12,5 minutos.

Sin embargo, ProgPoW mantiene los accesos a la memoria del clásico ethash compartiendo la misma área de memoria DAG. El nuevo conjunto de instrucciones matemáticas está diseñado específicamente para aprovechar al máximo todos los componentes de una GPU básica que puede considerarse un ASIC de propósito general . La programabilidad, por otro lado, no es un punto fuerte para los ASIC especializados. Sus fabricantes tendrían dificultades para diseñar un dispositivo con una ganancia sensible sobre una GPU sin introducir componentes de GPU.

Este, en principio, es el objetivo de ProgPoW. Las mejores palabras para el fundamento de ProgPoW se describen aquí por el equipo de desarrolladores original.

Qué no es ProgPoW.

Aunque podría ser tentador considerar ProgPoW como “ la” solución en la lucha contra los ASIC, esto no es cierto. ProgPoW puede retrasar la ola entrante de ASIC especializados y mitigar las ventajas que las futuras generaciones de ASIC pueden tener sobre las GPU básicas. Pero nada impide que los fabricantes de hardware especializados inviertan cantidades considerables de dinero en el diseño de dispositivos nuevos, más potentes y más programables.

Con respecto a la red ethereum, la propuesta ProgPoW siempre se ha descrito como una solución ad-interim para evitar que la red sea manipulada por pocos actores mientras se espera que salga a la luz la finalidad (PoS) .

¿Quién obtiene más ventajas de la adopción (no estoy seguro) de ProgPoW?

En general, la red en sí, que podría mantenerse segura y rentable por una audiencia más amplia de mineros que usan su hardware básico. Como consecuencia, los mineros de GPU podrían ver que sus ingresos aumentan ligeramente. Sin embargo, a un costo, como veremos más adelante. Los mineros han pedido en voz alta ProgPoW y muchos desarrolladores, como yo, escucharon.

Obviamente, los fabricantes de hardware especializados podrían no estar contentos con tal adopción, ya que su desarrollo necesitaría pasar por un proyecto de industrialización totalmente nuevo que requiere tiempo y muchas inversiones.

No es de extrañar entonces que después de la última All Devs Call, donde hubo una indicación de seguir adelante en el estudio de la posible adopción de ProgPoW, un gran fabricante de ASIC como Linzhi simplemente twitteó su necesidad de involucrarse en un proyecto abierto para construir un ” buen ASIC ”para ProgPoW.

¿Qué pasa con NVIDIA y AMD?

Los dos principales fabricantes de GPU no se verían tan favorecidos por ProgPoW, en mi opinión, debido a un simple hecho: ProgPoW preservará la inversión real en hardware por parte de los mineros de GPU, lo que ralentizará la carrera hacia dispositivos pseudoespecializados de primera clase. Esto no significa que podrá volver a ingresar al negocio de la minería con GPU de 3GB (esto será imposible debido a que DAG seguirá igual que ethash y crecerá al mismo ritmo). En cambio, ProgPoW equilibra los requisitos de ancho de banda de memoria (para acceder al DAG) con más tareas de cálculo que involucran la eficiencia de los núcleos. Esto significa que el clásico reloj de núcleos no es más efectivo.

¿Cuál es el costo de minería de ProgPoW?

ProgPoW tiene un costo. Para todos . Tasa de hash reducida con respecto a ethash (de -56% hasta -65%) y más consumo de energía por GPU (+ 10% al menos). Esto se debe al hecho de que, como se indicó anteriormente, ProgPoW hace uso de todos los componentes de la GPU, incluidos los núcleos para la actividad computacional. Esto significa que ya no tendrás núcleos de reloj. Si suma todo esto con la emisión reducida de la actualización entrante de Costantinopole, podría pensar que esto no es económicamente viable. Sin embargo, espere (si ProgPoW alguna vez se implementa) una gran caída de hashrate en todo el mundo con la consiguiente disminución de la dificultad. Haga sus cálculos con cuidado.

¿Cuál será mi tasa de hash esperada?

Esta pregunta no tiene respuesta. ProgPoW es programable lo que implica un cambio en el kernel de búsqueda cada 50 bloques. Cada kernel tiene su propia velocidad, por lo que no puede esperar una velocidad de hash constante y constante (aunque la varianza debe permanecer dentro de un rango de +/- 6 ~ 7%). No espere más una línea constante y constante de “hashrate informado” en los gráficos proporcionados por los grupos de su elección.

Veo que las tarjetas NVIDIA tienen un mejor hash en ProgPoW que en las AMD.

Respuesta directa que sí. Pero … hay algunas advertencias. Vi muchas comparaciones que no tienen en cuenta el cambio en la tasa de hash entre los períodos ProgPoW (ver arriba), por lo que son inexactas. Sin embargo … sí … ya que los núcleos deben compilarse sobre la marcha (cuando cambia el período de 50 bloques) El compilador CUDA funciona y optimiza mejor que el de OpenCL.

Escuché muchas mentiras sobre el proyecto ProgPoW financiado por NVIDIA, pero esas simplemente deben clasificarse como tonterías: el código ProgPoW es público, de código abierto y realiza exactamente las mismas operaciones (bastante simples) en las GPU de ambos proveedores. La mayoría de las diferencias provienen de la forma en que se compilan los núcleos.

Esto lleva a otra consideración muy importante. El 99,99% de los mineros de GPU de AMD utilizan BIOS modificados en paquete con mineros de software que incorporan kernels binarios (optimizados manualmente). ¡Todo esto ya no será útil! La optimización del kernel binario de AMD no es posible ya que se generan nuevos kernels sobre la marcha cada 50 bloques. La BIOS modificada (que manipula la latencia de acceso a la memoria) ya no será efectiva. En otras palabras … los BIOS de stock serán tan efectivos como los modificados.

¿Debería prepararme para ProgPoW?

Bueno … tu llamada. La implementación en la cadena principal de Ethereum aún no está decidida. Desafortunadamente, la gran mayoría de los argumentos son políticos más que técnicos. Y esto lleva a una situación muy confusa que, en mi humilde opinión, duraría mucho.