{"id":25589,"date":"2026-04-13T08:11:55","date_gmt":"2026-04-13T06:11:55","guid":{"rendered":"https:\/\/www.moreware.org\/wp\/?p=25589"},"modified":"2026-04-11T11:16:46","modified_gmt":"2026-04-11T09:16:46","slug":"come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly","status":"publish","type":"post","link":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/","title":{"rendered":"Come scrivere un modello AI transformer su PDP-11 in assembly"},"content":{"rendered":"<p class=\"isSelectedEnd\" style=\"text-align: justify\">L\u2019idea di addestrare un modello di machine learning su hardware degli anni \u201970 pu\u00f2 sembrare, a prima vista, un esercizio puramente accademico o nostalgico. Tuttavia, il progetto ATTN\/11 dimostra qualcosa di pi\u00f9 interessante: i principi alla base dei moderni modelli di intelligenza artificiale non sono legati a infrastrutture cloud o GPU avanzate, ma a concetti matematici e computazionali ben definiti, implementabili anche su sistemi estremamente limitati. Vediamo oggi come \u00e8 stato implementato un transformer su un PDP-11.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">ATTN\/11 nasce come evoluzione naturale di Xortran, una rete neurale capace di apprendere la funzione XOR su macchine come IBM 1130 e PDP-11. Il passo successivo \u00e8 stato verificare se fosse possibile addestrare un piccolo transformer su queste architetture, mantenendo tempi accettabili.<\/p>\n<h2 style=\"text-align: justify\">Architettura: un transformer essenziale<\/h2>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Uno degli aspetti pi\u00f9 interessanti del progetto \u00e8 la semplicit\u00e0 architetturale. Un transformer, spesso percepito come un sistema complesso e opaco, \u00e8 in realt\u00e0 un\u2019estensione relativamente modesta di una rete neurale classica.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Gli elementi fondamentali sono gi\u00e0 noti:<\/p>\n<ul style=\"text-align: justify\" data-spread=\"false\">\n<li>moltiplicazioni tra matrici<\/li>\n<li>backpropagation<\/li>\n<li>discesa del gradiente (SGD)<\/li>\n<li>funzione di perdita cross-entropy<\/li>\n<\/ul>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">A questi si aggiungono tre componenti chiave:<\/p>\n<ul style=\"text-align: justify\" data-spread=\"false\">\n<li>self-attention<\/li>\n<li>positional encoding<\/li>\n<li>softmax<\/li>\n<\/ul>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Nel caso di ATTN\/11, il modello \u00e8 ridotto all\u2019essenziale: un singolo layer, una sola testa di attenzione, dimensione del modello pari a 16, sequenze di lunghezza 8 e un vocabolario di 10 simboli (le cifre da 0 a 9). In totale, appena 1.216 parametri.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Il flusso dei dati segue una pipeline lineare:<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Token \u2192 Embedding \u2192 Self-Attention \u2192 Residual \u2192 Projection \u2192 Softmax<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Non sono presenti layer normalization, feed-forward network o decoder. Per il problema scelto, questi elementi non sono necessari.<\/p>\n<h4 style=\"text-align: justify\">Il problema: invertire una sequenza<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Il task su cui viene addestrato il modello \u00e8 apparentemente banale: invertire una sequenza di cifre.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">In realt\u00e0, si tratta di un problema non banale per una rete neurale. Il modello deve apprendere una trasformazione che dipende esclusivamente dalla posizione degli elementi, senza poter sfruttare scorciatoie basate sul contenuto. \u00c8 proprio questo tipo di dipendenza che rende la self-attention particolarmente adatta.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Questo problema \u00e8 infatti utilizzato anche come benchmark algoritmico in Tensor2Tensor, l\u2019implementazione di riferimento del transformer proposta da Google nel 2017.<\/p>\n<h4 style=\"text-align: justify\">Ottimizzazione per hardware degli anni \u201970<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Una prima implementazione in Fortran IV mostrava limiti evidenti: circa 6,5 ore di addestramento su hardware reale. Un tempo eccessivo per macchine time-shared.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Il passaggio all\u2019assembly e alcune ottimizzazioni mirate hanno ridotto drasticamente i tempi. Una scelta significativa \u00e8 stata l\u2019introduzione di learning rate differenziati per layer:<\/p>\n<ul style=\"text-align: justify\" data-spread=\"false\">\n<li>pesi dell\u2019attenzione con learning rate pi\u00f9 alto<\/li>\n<li>embedding con valore intermedio<\/li>\n<li>proiezione finale con valore pi\u00f9 basso<\/li>\n<\/ul>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Questa strategia consente una convergenza pi\u00f9 rapida senza introdurre overhead computazionale. L\u2019uso di un ottimizzatore pi\u00f9 sofisticato come Adam sarebbe stato proibitivo: maggiore memoria richiesta e operazioni (divisioni e radici quadrate) troppo costose per il PDP-11.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Il risultato finale \u00e8 notevole: convergenza in circa 350 step, con un tempo totale di addestramento di circa 5,5 minuti su un PDP-11\/34A.<\/p>\n<h4 style=\"text-align: justify\">Aritmetica a punto fisso e NN11<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">In assenza di unit\u00e0 in virgola mobile, il progetto utilizza aritmetica a punto fisso, con formati diversi per forward e backward pass:<\/p>\n<ul style=\"text-align: justify\" data-spread=\"false\">\n<li>Q8 per il forward<\/li>\n<li>Q15 per il backward<\/li>\n<li>Q16 per gli accumulatori dei pesi<\/li>\n<\/ul>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Questa scelta non \u00e8 casuale: \u00e8 ottimizzata per il set di istruzioni del PDP-11. Ad esempio, il prodotto tra un valore Q8 e uno Q15 produce un risultato direttamente gestibile con uno shift efficiente.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Il tutto \u00e8 supportato da NN11, uno stack minimale organizzato a livelli:<\/p>\n<ul style=\"text-align: justify\" data-spread=\"false\">\n<li>operazioni scalari<\/li>\n<li>operazioni vettoriali<\/li>\n<li>operazioni matrice-vettore<\/li>\n<li>funzioni di attivazione<\/li>\n<li>layer completi (embedding, attenzione, proiezione)<\/li>\n<\/ul>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">L\u2019approccio ricorda librerie moderne come BLAS, ma adattato a un contesto estremamente vincolato.<\/p>\n<h4 style=\"text-align: justify\">Lookup table al posto delle funzioni matematiche<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Operazioni come exp e log sono troppo costose senza FPU. La soluzione adottata \u00e8 l\u2019uso di lookup table precomputate.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">La softmax, ad esempio, utilizza una tabella da 256 valori per approssimare l\u2019esponenziale. Allo stesso modo, la cross-entropy sfrutta una tabella per il logaritmo.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Questo approccio riduce drasticamente il costo computazionale: una lettura in memoria sostituisce operazioni matematiche complesse.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Un\u2019ulteriore ottimizzazione deriva dalla propriet\u00e0 nota della combinazione softmax\u2013cross-entropy, che semplifica il calcolo del gradiente evitando del tutto il logaritmo durante il training.<\/p>\n<h4 style=\"text-align: justify\">Gestione della memoria<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Il sistema utilizza circa 19,2 KB su un totale di 32 KB disponibili. I parametri del modello sono replicati in tre formati distinti (Q8, Q15, Q16), occupando la maggior parte della memoria.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Nonostante questi vincoli, il modello riesce a essere completamente funzionale e addestrabile.<\/p>\n<h4 style=\"text-align: justify\">Prototipazione e verifica<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Prima dell\u2019implementazione in assembly, il modello \u00e8 stato prototipato e validato in Sheaf, un framework funzionale per machine learning con strumenti avanzati di tracciamento e verifica.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Questo passaggio \u00e8 cruciale: lavorare direttamente in assembly senza una validazione preliminare sarebbe estremamente rischioso, soprattutto con aritmetica a punto fisso.<\/p>\n<h4 style=\"text-align: justify\">Una riflessione: l\u2019AI non \u00e8 una \u201cblack box\u201d<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Progetti come ATTN\/11 aiutano a ridimensionare una narrativa molto diffusa: quella secondo cui l\u2019intelligenza artificiale sarebbe una sorta di \u201cscatola nera\u201d incomprensibile.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">\u00c8 vero che sistemi come ChatGPT, Claude o Gemini sono estremamente complessi e addestrati su scala enorme, con miliardi o trilioni di parametri. Ed \u00e8 altrettanto vero che replicare questi modelli da zero non \u00e8 un compito alla portata del singolo sviluppatore.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">Tuttavia, i principi alla base sono ben noti: layer, embedding, matrici di attenzione, moltiplicazioni tra matrici, ottimizzazione numerica e statistica. I transformer non sono magia, ma ingegneria.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">ATTN\/11 lo dimostra chiaramente: riducendo il problema alla sua essenza, \u00e8 possibile implementare e comprendere un transformer anche su hardware estremamente limitato. Con studio e pratica, \u00e8 possibile costruire versioni semplificate di questi modelli, e sono disponibili numerosi tutorial che guidano passo passo in questo percorso.<\/p>\n<h4 style=\"text-align: justify\">Conclusione<\/h4>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">ATTN\/11 non \u00e8 solo un esercizio di retrocomputing, ma una dimostrazione concreta della natura dei modelli di deep learning. Riducendo un transformer ai suoi componenti fondamentali e implementandolo in assembly su un PDP-11, il progetto mostra che l\u2019intelligenza artificiale moderna \u00e8 costruita su basi solide, comprensibili e accessibili.<\/p>\n<p class=\"isSelectedEnd\" style=\"text-align: justify\">In un\u2019epoca in cui l\u2019AI \u00e8 spesso percepita come qualcosa di distante e opaco, esperimenti come questo riportano l\u2019attenzione sull\u2019essenziale: algoritmi, matematica e ingegneria.<\/p>\n<p style=\"text-align: justify\">Per approfondire il progetto \u00e8 possibile consultare il repository ufficiale su GitHub:<br \/>\n<a href=\"https:\/\/github.com\/dbrll\/ATTN-11\">https:\/\/github.com\/dbrll\/ATTN-11<\/a><\/p>\n<p style=\"text-align: justify\"><strong>Iscriviti ai nostri gruppi Telegram<\/strong><\/p>\n<ul style=\"text-align: justify\">\n<li><a href=\"https:\/\/t.me\/makeritalia\">Gruppo Maker Italia<\/a><\/li>\n<li><a href=\"https:\/\/t.me\/offertepermakers\">Canale Offerte per prodotti maker<\/a><\/li>\n<\/ul>\n<p style=\"text-align: justify\"><strong>Link utili<\/strong><\/p>\n<ul style=\"text-align: justify\">\n<li><a href=\"https:\/\/amzn.to\/311kqh7\">Arduino UNO R3<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2Rwbrl4\">Elegoo UNO R3<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2O2xCwT\">Arduino Starter Kit per principianti<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2U2CDJW\">Elegoo Advanced Starter Kit<\/a><\/li>\n<li><a href=\"https:\/\/amzn.to\/2RTjQOx\">Arduino Nano<\/a><\/li>\n<\/ul>\n<div>\n<p style=\"text-align: justify\"><strong>Seguici per non perdere le prossime novit\u00e0!<\/strong><\/p>\n<ul>\n<li style=\"text-align: justify\"><a href=\"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&amp;hosted_button_id=XCW8T56HHE4QL&amp;source=url\" rel=\"noopener noreferrer\">Donate<\/a><\/li>\n<li style=\"text-align: justify\"><a href=\"https:\/\/www.youtube.com\/channel\/UCFFSDYPL0-Fx6OvJD28GP8A\" rel=\"noopener noreferrer\">Youtube<\/a><\/li>\n<li style=\"text-align: justify\"><a href=\"https:\/\/www.moreware.org\/wp\/\" target=\"_blank\" rel=\"noopener noreferrer\">Blog<\/a><\/li>\n<li style=\"text-align: justify\"><a href=\"https:\/\/www.facebook.com\/MoreWareOrg\" rel=\"noopener noreferrer\">Facebook<\/a><\/li>\n<li style=\"text-align: justify\"><a href=\"https:\/\/twitter.com\/MoreWare20\" rel=\"noopener noreferrer\">Twitter<\/a><\/li>\n<li style=\"text-align: justify\"><a href=\"https:\/\/it.linkedin.com\/in\/luigimorelli\" rel=\"noopener noreferrer\">Linkedin<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>L\u2019idea di addestrare un modello di machine learning su hardware degli anni \u201970 pu\u00f2 sembrare, a prima vista, un esercizio puramente accademico o nostalgico. Tuttavia, il progetto ATTN\/11 dimostra qualcosa di pi\u00f9 interessante: i principi alla base dei moderni modelli di intelligenza artificiale non sono legati a infrastrutture cloud o<\/p>\n","protected":false},"author":5,"featured_media":25590,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2371],"tags":[49,998,2482,773,50,2481,2480,1389,2479],"class_list":["post-25589","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","tag-ai","tag-assembly","tag-deep-learning","tag-embedded","tag-machine-learning","tag-neural-network","tag-pdp-11","tag-retrocomputing","tag-transformer","has-featured-image"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Come scrivere un modello AI transformer su PDP-11 in assembly - Moreware Blog<\/title>\n<meta name=\"description\" content=\"Vediamo oggi come \u00e8 stato implementato un transformer su un PDP-11.ATTN\/11 nasce come evoluzione naturale di Xortran, una rete...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come scrivere un modello AI transformer su PDP-11 in assembly - Moreware Blog\" \/>\n<meta property=\"og:description\" content=\"Vediamo oggi come \u00e8 stato implementato un transformer su un PDP-11.ATTN\/11 nasce come evoluzione naturale di Xortran, una rete...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/\" \/>\n<meta property=\"og:site_name\" content=\"Moreware Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Cygni.61\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/simone.candido.370\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-13T06:11:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2026\/04\/pdp11.png?fit=480%2C585&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"480\" \/>\n\t<meta property=\"og:image:height\" content=\"585\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Simone Candido\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@simonecandido02\" \/>\n<meta name=\"twitter:site\" content=\"@MoreWare20\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simone Candido\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/\"},\"author\":{\"name\":\"Simone Candido\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/507ca2a676d34903ed04bdf630310f7c\"},\"headline\":\"Come scrivere un modello AI transformer su PDP-11 in assembly\",\"datePublished\":\"2026-04-13T06:11:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/\"},\"wordCount\":1047,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/5b58b2bca7f834b923832944d7feed16\"},\"image\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/pdp11.png?fit=480%2C585&ssl=1\",\"keywords\":[\"AI\",\"Assembly\",\"deep learning\",\"Embedded\",\"machine learning\",\"neural network\",\"PDP-11\",\"retrocomputing\",\"transformer\"],\"articleSection\":[\"AI\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/\",\"url\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/\",\"name\":\"Come scrivere un modello AI transformer su PDP-11 in assembly - Moreware Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/pdp11.png?fit=480%2C585&ssl=1\",\"datePublished\":\"2026-04-13T06:11:55+00:00\",\"description\":\"Vediamo oggi come \u00e8 stato implementato un transformer su un PDP-11.ATTN\\\/11 nasce come evoluzione naturale di Xortran, una rete...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/pdp11.png?fit=480%2C585&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/pdp11.png?fit=480%2C585&ssl=1\",\"width\":480,\"height\":585,\"caption\":\"transformer\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/2026\\\/04\\\/13\\\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Come scrivere un modello AI transformer su PDP-11 in assembly\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#website\",\"url\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/\",\"name\":\"Moreware Blog\",\"description\":\"Mindware site for Raspberry PI and Arduino prototyping\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/5b58b2bca7f834b923832944d7feed16\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/5b58b2bca7f834b923832944d7feed16\",\"name\":\"Luigi_Morelli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\",\"width\":540,\"height\":540,\"caption\":\"Luigi_Morelli\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.moreware.org\\\/wp\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/luigisax.jpg?fit=540%2C540&ssl=1\"},\"description\":\"Definire ci\u00f2 che si \u00e8 non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche\u2019 ci\u00f2 che riesco a portare a termine mi d\u00e0 soddisfazione, piacere. Cos\u00ec come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ci\u00f2 che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.\",\"sameAs\":[\"http:\\\/\\\/www.moreware.org\",\"https:\\\/\\\/www.facebook.com\\\/Cygni.61\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/luigimorelli\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/MoreWare20\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCFFSDYPL0-Fx6OvJD28GP8A\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/#\\\/schema\\\/person\\\/507ca2a676d34903ed04bdf630310f7c\",\"name\":\"Simone Candido\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a716bd925ddaf3fbd8741bd815106753854801ed58350fafe429c60b5161c117?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a716bd925ddaf3fbd8741bd815106753854801ed58350fafe429c60b5161c117?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a716bd925ddaf3fbd8741bd815106753854801ed58350fafe429c60b5161c117?s=96&d=mm&r=g\",\"caption\":\"Simone Candido\"},\"description\":\"Simone Candido \u00e8 un ragazzo appassionato del mondo tech nella sua totalit\u00e0. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360\u00b0 le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.\",\"sameAs\":[\"https:\\\/\\\/www.gamesource.it\\\/author\\\/simod_pcandido\\\/\",\"https:\\\/\\\/www.facebook.com\\\/simone.candido.370\",\"https:\\\/\\\/www.instagram.com\\\/simod_pcandido\\\/?hl=it\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/simone-candido-53b696146\\\/\",\"https:\\\/\\\/x.com\\\/simonecandido02\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCFFSDYPL0-Fx6OvJD28GP8A\\\/about\"],\"url\":\"https:\\\/\\\/www.moreware.org\\\/wp\\\/blog\\\/author\\\/simonecandido\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Come scrivere un modello AI transformer su PDP-11 in assembly - Moreware Blog","description":"Vediamo oggi come \u00e8 stato implementato un transformer su un PDP-11.ATTN\/11 nasce come evoluzione naturale di Xortran, una rete...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/","og_locale":"en_US","og_type":"article","og_title":"Come scrivere un modello AI transformer su PDP-11 in assembly - Moreware Blog","og_description":"Vediamo oggi come \u00e8 stato implementato un transformer su un PDP-11.ATTN\/11 nasce come evoluzione naturale di Xortran, una rete...","og_url":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/","og_site_name":"Moreware Blog","article_publisher":"https:\/\/www.facebook.com\/Cygni.61","article_author":"https:\/\/www.facebook.com\/simone.candido.370","article_published_time":"2026-04-13T06:11:55+00:00","og_image":[{"width":480,"height":585,"url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2026\/04\/pdp11.png?fit=480%2C585&ssl=1","type":"image\/png"}],"author":"Simone Candido","twitter_card":"summary_large_image","twitter_creator":"@simonecandido02","twitter_site":"@MoreWare20","twitter_misc":{"Written by":"Simone Candido","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#article","isPartOf":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/"},"author":{"name":"Simone Candido","@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/507ca2a676d34903ed04bdf630310f7c"},"headline":"Come scrivere un modello AI transformer su PDP-11 in assembly","datePublished":"2026-04-13T06:11:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/"},"wordCount":1047,"commentCount":0,"publisher":{"@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/5b58b2bca7f834b923832944d7feed16"},"image":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2026\/04\/pdp11.png?fit=480%2C585&ssl=1","keywords":["AI","Assembly","deep learning","Embedded","machine learning","neural network","PDP-11","retrocomputing","transformer"],"articleSection":["AI"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/","url":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/","name":"Come scrivere un modello AI transformer su PDP-11 in assembly - Moreware Blog","isPartOf":{"@id":"https:\/\/www.moreware.org\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#primaryimage"},"image":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2026\/04\/pdp11.png?fit=480%2C585&ssl=1","datePublished":"2026-04-13T06:11:55+00:00","description":"Vediamo oggi come \u00e8 stato implementato un transformer su un PDP-11.ATTN\/11 nasce come evoluzione naturale di Xortran, una rete...","breadcrumb":{"@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#primaryimage","url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2026\/04\/pdp11.png?fit=480%2C585&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2026\/04\/pdp11.png?fit=480%2C585&ssl=1","width":480,"height":585,"caption":"transformer"},{"@type":"BreadcrumbList","@id":"https:\/\/www.moreware.org\/wp\/blog\/2026\/04\/13\/come-scrivere-un-modello-ai-transformer-su-pdp-11-in-assembly\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.moreware.org\/wp\/"},{"@type":"ListItem","position":2,"name":"Come scrivere un modello AI transformer su PDP-11 in assembly"}]},{"@type":"WebSite","@id":"https:\/\/www.moreware.org\/wp\/#website","url":"https:\/\/www.moreware.org\/wp\/","name":"Moreware Blog","description":"Mindware site for Raspberry PI and Arduino prototyping","publisher":{"@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/5b58b2bca7f834b923832944d7feed16"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.moreware.org\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/5b58b2bca7f834b923832944d7feed16","name":"Luigi_Morelli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1","url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1","width":540,"height":540,"caption":"Luigi_Morelli"},"logo":{"@id":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2019\/07\/luigisax.jpg?fit=540%2C540&ssl=1"},"description":"Definire ci\u00f2 che si \u00e8 non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche\u2019 ci\u00f2 che riesco a portare a termine mi d\u00e0 soddisfazione, piacere. Cos\u00ec come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ci\u00f2 che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.","sameAs":["http:\/\/www.moreware.org","https:\/\/www.facebook.com\/Cygni.61","https:\/\/www.linkedin.com\/in\/luigimorelli\/","https:\/\/x.com\/https:\/\/twitter.com\/MoreWare20","https:\/\/www.youtube.com\/channel\/UCFFSDYPL0-Fx6OvJD28GP8A"]},{"@type":"Person","@id":"https:\/\/www.moreware.org\/wp\/#\/schema\/person\/507ca2a676d34903ed04bdf630310f7c","name":"Simone Candido","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a716bd925ddaf3fbd8741bd815106753854801ed58350fafe429c60b5161c117?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a716bd925ddaf3fbd8741bd815106753854801ed58350fafe429c60b5161c117?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a716bd925ddaf3fbd8741bd815106753854801ed58350fafe429c60b5161c117?s=96&d=mm&r=g","caption":"Simone Candido"},"description":"Simone Candido \u00e8 un ragazzo appassionato del mondo tech nella sua totalit\u00e0. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360\u00b0 le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.","sameAs":["https:\/\/www.gamesource.it\/author\/simod_pcandido\/","https:\/\/www.facebook.com\/simone.candido.370","https:\/\/www.instagram.com\/simod_pcandido\/?hl=it","https:\/\/www.linkedin.com\/in\/simone-candido-53b696146\/","https:\/\/x.com\/simonecandido02","https:\/\/www.youtube.com\/channel\/UCFFSDYPL0-Fx6OvJD28GP8A\/about"],"url":"https:\/\/www.moreware.org\/wp\/blog\/author\/simonecandido\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.moreware.org\/wp\/wp-content\/uploads\/2026\/04\/pdp11.png?fit=480%2C585&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p80TdZ-6EJ","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts\/25589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/comments?post=25589"}],"version-history":[{"count":1,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts\/25589\/revisions"}],"predecessor-version":[{"id":25591,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/posts\/25589\/revisions\/25591"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/media\/25590"}],"wp:attachment":[{"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/media?parent=25589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/categories?post=25589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.moreware.org\/wp\/wp-json\/wp\/v2\/tags?post=25589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}