[{"data":1,"prerenderedAt":295},["ShallowReactive",2],{"project-48710778":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":43,"post_text":44,"what":45,"said":79,"maker_in_thread":177,"shape":186,"grid":190,"attempts":251,"same_week":256,"maker_shows":31,"maker_hidden":287,"reader_version":288,"card":289},"48710778","NanoEuler","GPT-2 scale model in pure C\u002FCUDA from scratch","title","Show HN: NanoEuler – GPT-2 scale model in pure C\u002FCUDA from scratch","https:\u002F\u002Fgithub.com\u002FJustVugg\u002Fnanoeuler","github.com","vforno",1782675494,2026,55,26,1136,4366,27,"notable","ai","language model training from scratch","other",[24,25,26,27],"cuda","gpt-2 from scratch","transformer training","c cuda llm","debated",-0.042,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,5,0,4,12,{"execution":37,"performance":39,"docs":40,"design":41,"idea":42},{"positive":33,"critical":38},1,{"positive":33,"critical":38},{"positive":38,"critical":38},{"positive":33,"critical":38},{"positive":38,"critical":33},[31,33,38,33,31,33,38,33,31,33,32,33,31,33,32,33,38,33,31,33,33,33,33,38,33,32],"Hi everyone,\n\nI started working on nanoeuler after the ban of anthropic's fable because my ambition and dream is to work in the AI   field in anthropic. The two interesting reasons that led me to create nanoeuler were (1) interfacing with llm does not mean understanding how they are composed and (2), working on llm with a very low-level layer to understand the correlation between parameters and data and growth of the model and how the GPU works and how some layers can be optimized.\n\nSo I started working on it with a research aspect by making nanoeuler grow more and more but doing one step afte",{"problem":46,"audience":52,"pricing":52,"motivation":53,"time_to_build":52,"stack":57,"openness":76,"stage":77,"team_size":78},{"value":47,"source":48,"evidence":49},"Understanding how LLMs are composed and trained at a low level","maker",[50],{"id":51},"post",null,{"value":54,"source":48,"evidence":55},"Learn how LLMs are composed and how GPUs run them, as a step toward working in AI at Anthropic",[56],{"id":51},[58,62,66,72],{"value":59,"source":48,"evidence":60},"C",[61],{"id":51},{"value":63,"source":48,"evidence":64},"CUDA",[65],{"id":51},{"value":67,"source":48,"evidence":68},"cuBLAS",[69],{"id":70,"by":11,"text":71},"48718120","Hi, in nanoeuler I use cuBLAS (NVIDIA's super-optimized library) for all matrix multiplications, with the tensor cores in TF32 mode. It's the same thing PyTorch uses underneath,…",{"value":73,"source":48,"evidence":74},"FlashAttention-style custom kernels",[75],{"id":70,"by":11,"text":71},"open_source","prototype","unknown",{"praise":80,"objections":97,"requests":124,"questions":141,"alternatives":164},[81],{"value":82,"source":83,"evidence":84},"Interesting and educational project","commenter",[85,89,93],{"id":86,"by":87,"text":88},"48717369","ali_chherawalla","this is super interesting. Looking forward to trying this out!",{"id":90,"by":91,"text":92},"48724045","memezed","Amazing, i’ll try to learn from your code. Thanks!",{"id":94,"by":95,"text":96},"48717562","AndReics","Wow that's really cool i'll definitely check it out! have played around with machine learning algorithms built from scratch in c \u002F cuda too, but once i hit the cuda part of it i…",[98,102,113,120],{"value":99,"source":48,"evidence":100},"Training is slower than PyTorch, about 1.5-2.5x",[101],{"id":70,"by":11,"text":71},{"value":103,"source":83,"evidence":104},"Code style is odd and README appears AI-generated",[105,109],{"id":106,"by":107,"text":108},"48710838","Chu4eeno","Very weird coding style, did you run astyle --style=python on C code? Also, your LLM left a comment in the cuda source that it is untested, does the cuda stuff work?",{"id":110,"by":111,"text":112},"48713150","tdesilva","Mentioning neural ODE doesn't make sense here, as this is unrelated. Basically any implementation of transformer uses residuals, but you're not really training a neural ODE here.…",{"value":114,"source":83,"evidence":115},"Training data from Gutenberg and Shakespeare is a poor corpus for modern English",[116],{"id":117,"by":118,"text":119},"48712174","bArray","Not sure, but the code is quite dense and lacking in comments. `nanoeuler` & `nanoeuler_check` is itself the binary checked straight into git with the `.log` file? All of the…",{"value":121,"source":83,"evidence":122},"Commit history is sparse and uploads are rushed",[123],{"id":117,"by":118,"text":119},[125,132,137],{"value":126,"source":83,"evidence":127},"Disclose LLM usage in the project",[128],{"id":129,"by":130,"text":131},"48719473","gaflo","Consider adding a rule that an author must disclose (in their own words) for what parts and to what extent LLMs have been used to assist their project.",{"value":133,"source":83,"evidence":134},"Add more comments and clearer README",[135,136],{"id":117,"by":118,"text":119},{"id":110,"by":111,"text":112},{"value":138,"source":83,"evidence":139},"Use a modern English corpus such as Kiwix ZIM archives",[140],{"id":117,"by":118,"text":119},[142,149,153,160],{"value":143,"source":83,"evidence":144},"How much of the code is LLM generated",[145],{"id":146,"by":147,"text":148},"48714054","isatty","I'm genuinely curious how much of this is LLM generated?",{"value":150,"source":83,"evidence":151},"Does the CUDA code work, since a comment says it is untested",[152],{"id":106,"by":107,"text":108},{"value":154,"source":83,"evidence":155},"How long was training and how many tokens",[156],{"id":157,"by":158,"text":159},"48712160","ericb","How long was it trained for? How many tokens?",{"value":161,"source":83,"evidence":162},"Is training faster or slower than PyTorch",[163],{"id":94,"by":95,"text":96},[165,172],{"value":166,"source":83,"evidence":167},"PyTorch with torch.compile",[168,169],{"id":70,"by":11,"text":71},{"id":170,"by":11,"text":171},"48718864","Yes, because it has many separate kernels instead of aggressive merges like PyTorch (with Torch Compile). Each pass (norm, matmul, residual, RoPE, etc.) launches its own kernel,…",{"value":173,"source":174,"evidence":175},"nanoGPT-style minimal training code","inferred",[176],{"id":94,"by":95,"text":96},{"comments":178,"answered":179,"key":180},10,7,[181,182,183],{"id":70,"text":71},{"id":170,"text":171},{"id":184,"text":185},"48719122","Absolutely yes! With nanoeuler I learned so much by testing every little detail of the project. Every little part you see has been tested and proven several times so that it…",{"commenters":187,"max_depth":188,"maker_replies":178,"first_comment_mins":188,"lifespan_hours":189},13,6,49,[191,193,195,199,200,202,204,206,209,212,214,216,219,220,222,224,227,229,231,235,237,239,241,243,245,247],[94,33,31,192,95,33],"maker\u002Fneutral\u002Fexecution",[70,33,33,194,11,38],"project\u002Fneutral\u002Fperformance",[196,33,38,197,198,33],"48718730","project\u002Fcritical\u002Fperformance","novaRom",[170,33,33,194,11,38],[201,33,31,192,95,33],"48719067",[184,33,33,203,11,38],"project\u002Fpositive\u002Fexecution",[110,38,38,205,111,33],"project\u002Fcritical\u002Fdocs",[207,38,33,208,11,38],"48715139","maker\u002Fneutral\u002Fdocs",[146,210,31,211,147,33],2,"project\u002Fneutral\u002Fexecution",[213,210,33,211,11,38],"48715119",[90,31,32,215,91,33],"project\u002Fpositive\u002Fdocs",[217,31,33,218,11,38],"48724458","project\u002Fneutral\u002Fdocs",[157,34,31,194,158,33],[221,34,33,194,11,38],"48712196",[86,32,32,223,87,33],"project\u002Fpositive\u002Fnone",[225,32,33,226,11,38],"48717530","maker\u002Fpositive\u002Fnone",[106,188,38,228,107,33],"project\u002Fcritical\u002Fdesign",[230,188,33,203,11,38],"48711472",[232,188,31,233,234,33],"48711825","maker\u002Fneutral\u002Fnone","dang",[129,188,33,236,130,33],"other\u002Fneutral\u002Fnone",[238,188,33,236,234,33],"48721444",[240,188,33,236,130,33],"48734382",[242,188,33,236,234,33],"48739181",[117,188,38,244,118,33],"project\u002Fcritical\u002Fexecution",[246,188,33,192,11,38],"48712227",[248,188,32,249,250,33],"48714751","project\u002Fpositive\u002Fidea","andai",[252,255],{"id":253,"t":254,"points":188,"comments":31},"48601472",1781893115,{"id":4,"t":12,"points":14,"comments":15},[257,262,267,272,277,282],{"id":258,"name":259,"points":260,"category":261},"48673671","Hacker News Trends",822,"data",{"id":263,"name":264,"points":265,"category":266},"48708182","Zanagrams",400,"games",{"id":268,"name":269,"points":270,"category":271},"48752905","worker-owned",398,"web_saas",{"id":273,"name":274,"points":275,"category":276},"48675435","OpenKnowledge",381,"productivity",{"id":278,"name":279,"points":280,"category":281},"48688700","Weave Router",216,"dev_tools",{"id":283,"name":284,"points":285,"category":286},"48703412","Decomp Academy",197,"learning_science",false,"v2",{"id":290,"name":5,"line":6,"ai":287,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":291,"top":18,"kw":292,"maker":11,"domain":10,"tier":19,"attempts":210,"strip":293,"url":9,"mix":294,"praise":82,"objection":99,"sub":21},48710778,-0.04,[24,25,26,27],"30103010305030501030000105",[31,32,33,34],1794036703827]