#ÚltimaHora 🔴 Piden 24 años para Begoña Gómez por corrupción, tráfico de influencias, malversación y apropiación indebida #Echobox=1776685539" target="_blank" rel="nofollow noopener">elmundo.es/espana/2026/04…
Héctor de Miguel regresa a @rtveplay con una nueva temporada del videopódcast de cocina 'Héctor de Comer'
🍽️ Miércoles 22 de abril a las 23:10h en el canal EN PLAY.
rtve.es/n/17032052
La UCO despeja la X del 'caso Mascarillas' en Baleares: el aval de Armengol aceleró la penetración de la trama, que celebró "el pago tan ágil" #Echobox=1776492676" target="_blank" rel="nofollow noopener">elmundo.es/baleares/2026/…
HOLY SHIT, I just achieved MASSIVE GAINZ on multiplying and accumulating a 4x4 matrix held within memory onto the "active matrix" held within the 4x4 FP register back-bank of the SH4 FPU in my accelerated math library for the Sega Dreamcast!
After an extremely tense two hour-long session of playing inline assembly Tetris by meticulously hand-scheduling and reorganizing SH4 instructions, I am finally SPANKING the legacy mat_apply() routine from KallistiOS rather than barely winning against it with my SH4ZAM library of accelerated math routines targeting the Dreamcast's SH4.
What you see in the top left pane is the original out-of-line ASM implementation of math_apply(), which is offered by KOS's minimalist matrix.h API. What you see in the top right pane is my inline ASM implementation which is part of SH4ZAM's XMTRX API.
The bottom left pane is the unit tests which benchmarks the two implementations against each other, and the bottom right pane is the output after I ran the test suite on my physical HW, using the cycle-accurate SH4 performance counters to measure timing...
The results? When the matrix which gets passed to the routines as an argument is not already resident within the cache, I get about an 83% performance improvement. When the operand matrix is already resident within the cache, I get about a 21% perf improvement... which is ASTRONOMICAL GAINZ for a routine this hot!!!
So what the hell did I do to achieve this?
1) First of all, I worked WITH the compiler instead of against it. Rather than implementing my routine as a black-box out-of-line ASM routine which has to pay the cost of a full function call, saving and restoring certain registers and managing the stack frame according to the C ABI, I opted to implement mine as a forcibly inlined routine implemented within inline ASM.
By doing this, I'm able to tell the compiler precisely which registers I'm using and clobbering, which allows the compiler to not have to save and restore as much shit potentially as a full C ABI call and instead to only do it for the registers it actually gives a shit about preserving across the call.
2) Smarter stack management for when I need to push and pop values to and from the stack within the routine itself. Rather than using fmov.s to load and store single FP values to and from the stack, I align the stack up to 8 bytes, which allows me to swap to pairwise FMOV mode and use FMOV.D to load or store TWO floats for the exact same cycle cost as one.
3) Strategic prefetching. Since I know exactly what data I'm going to be operating on (the source matrix) and in what order, I can manually preload the data into the cache before I actually attempt to load it from memory, while I'm doing other stuff with the CPU.
I'm prefetching the first cache line of the matrix while I'm dicking around with aligning the stack, so that when I start loading the first values right afterwards, it's already there. Then the second cache line gets prefetched while the first cache line being used, so by the time I get done with the first cache line, the second is also filled.
4) Grouping instructions by pairs in a manner that maximizes superscalar dual dispatch on the SH4. This one's tricky. Not all instructions can be executed 2-at-a-time. Only instruction pairs in certain compatible groups can be run in parallel, so I had to be very careful to group work so that I'm pairing integer work with floating point work or integer work with loading/storing, for example, which can both use different areas of the CPU, while doing something like pairing two loads together will result in only single instruction dispatch, as the two would compete for resources.
5) Reducing vector instruction pipeline stalls. So it turns out there's an undocumented bit of bullshit with how the pipeline forwarding works when loading operands into FP regs then attempting to use them with vector instructions, like the FTRV instruction you see there.
Unlike regular FP instructions, the circuitry which allows for the result of a load to get forwarded on to an arithmetic FP instruction needing it as input before the load instruction is fully retired is evidently not connected to the vector unit, so there's an extra amount of cycles one must wait between loading operands into FP regs and trying to use them with vector instructions, or else you'll stall the pipeline.
The only way we even know this is from rigorous measurements using the SH4 performance counters... and since I did know it, I was able to Tetris a few extra instructions of work between FMOV.D loading the operands into regs and FTRV trying to operate on them.
Anyway... stoked AF that after two hours of getting my ass kicked by the SH4, I made HUGE wins!
testing my megadrive shape drawer thing with a few different inputs and some dumb graphics on the other layer to make it can co-exist with a game scene properly.
Will probably power a boss fight or something soon.
Yo ya sé que la máquina de odio del propio madridismo con sus jugadores es poderosísima
Pero que han echado a un tío por esto en el minuto 85 a setenta metros de portería
@elmundoes Falso. Mentira. Engaño. Fake.
Las aportaciones, actualizadas a un tipo de interés compuesto razonable, crecientes durante 38 años y decrecientes durante 15 años más, darían unas prestaciones mayores del doble de las pensiones actuales.
El "exceso de generosidad" del sistema de pensiones: los jubilados reciben un 62% más de lo que aportaron a la Seguridad Social #Echobox=1776236659" target="_blank" rel="nofollow noopener">elmundo.es/economia/2026/…
@drapocalipsis@PiedrafitaMario estás defendiendo lo que estás defendiendo. Por una vez se está trabajando en favor de la soberanía nacional y a vosotros se os llena la boca hablando de patriotismo pero luego sois unos vendidos de mierda. Preferís que España sea de cualquier oligarca antes q de españoles
#INVESTIGACIÓN La Guardia Civil fotografió a funcionarios de Transportes saltándose el precinto policial para llevarse trozos de vías. Los agentes explican que fueron testigos de la retirada de piezas y su desplazamiento a una nave en plena madrugada. eldebate.com/economia/20260…
@voz_populi@RegiMarinL Para alcanzar el próximo objetivo de colgar homosexuales sólo falta mover unas décimas más los porcentajes.
Las que hoy celebran esto ya habrán perdido su derecho a voto para entonces.
🥩 La ganadería española mira al halal y adapta su producción ante el creciente mercado islámico
✍️ Te informa Regina Marín (@RegiMarinL)
#Echobox=1775984572" target="_blank" rel="nofollow noopener">vozpopuli.com/economia/distr…
@anvillarino Esta vez sí, poner a tope la barrita de moronegrada va a ser la solución económica definitiva.
Las otras veces falló por culpa de la ultraderecha.
Estos 16 años de Orban han supuesto lo que ya sabemos: deterioro institucional, regresión anti-democrática, iliberalismo, atentados contra la pluralidad y todas esas cosas abstractas (aunque en el día a día no lo son tanto como parece, por ejemplo cuando un poderoso bien relacionado comete una injusticia contra tu familia y no tienes jueces ni medios de comunicación donde denunciarlo)
Pero además es que su modelo ha sido un desastre económico. El país tenía que haber aprovechado los fondos europeos para dar el estirón y podría estar al nivel de la República Checa, Eslovenia o Polonia. Pero en varios indicadores está más cerca de Rumanía o Bulgaria, en la cola de la UE.
El balance es negativo en casi todo: menor crecimiento, baja productividad, alta inflación (la más elevada de la UE desde 2020) y deterioro de servicios públicos. Políticas populistas como estímulos preelectorales y control de precios han agravado la situación, mientras que la falta de inversión en educación e innovación ha limitado el desarrollo.
Además, han puesto en marcha medidas costosísimas para aumentar la natalidad y todas han fracasado. Esto, unido a la baja inmigración, han provocado una caída importante de la población y escasez de trabajadores.
En conjunto, la economía húngara está estancada y endeudada. A ver qué pasa esta noche.
@MadridSports_@sirolopez No, claro, porque cuando sostienen al Barça en soporte vital en los momentos en los que no dan la talla tampoco cuentan.
Sólo se puede protestar cuando te roban sí, y sólo sí, primero has realizado una exhibición de juego.
Claro que sí.
Tan sencillo como real esto que dijo ayer @sirolopez:
"Tú no pierdes una Liga por los árbitros cuando estás a 9 puntos del primero. Perderás una Liga por los árbitros si es una Liga en la que llegas al final de la temporada 1 punto arriba, 2 puntos abajo. Ahora, sí habrá que decir al señor Alberola de Rojas que es un inepto y que no puede estar arbitrando en Primera División"