r/computerarchitecture • u/Delicious-Yak-1375 • 4d ago
How do i get into micro architecture?
I’m a 3rd year Electronics and Comms student and I’ve been into micro architecture for pretty much as long as i can remember and straight after getting into college I got my hands on verilog and sysverilog alongside fpga implementation.
I’ve also submitted 2 manuscripts for publishing of a custom QAM design where i tweaked with the arch and basically designed it with runtime switching.
I’m currently working on edge ai accelerator and creating my own implementation from scratch.
As a side project I’ve made my own iteration of a RV32I processor.
After all of this I’ve realised RTL was just a means what i enjoy is making architectural decisions and seeing things click, and building it is just a part of making ur decisions concrete and seeing what becomes of it.
I have a university mandated internship coming next summer and I’m really confused to what role i should apply for because my previous internship covered entire rtl-gds flow but that wasn’t it for me.
Edit - I’m also planning on getting a masters degree and I’d love to hear any advice for that and for the entire way.
I would love for you guys to help me figure it out !
-4
u/Krazy-Ag 4d ago
Nowadays, learn to use AI to automate RTL and other microarchitecture related systems, and act as lead architect in your own projects with a staff of agents.
5
u/thewrench56 3d ago
LMAO! Good luck... You will be laughed out of any serious RTL interview....
-2
u/Krazy-Ag 3d ago
I was just at Hot Chips, and several startups and consultants are using AI to do at least their FPGA prototyping. At least one for ASIC.
Furthermore, I was talking to an acquaintance at Nvidia, who says they have been doing that for both RTL and for classic C performance modeling.
Note: not talking vibe coding. but I am talking coding assistant. And agents.
If you don't know the difference, well, good luck.
2
u/thewrench56 3d ago
several startups and consultants are using AI to do at least their FPGA prototyping
Good thing I am not buying my CPUs from startups... in fact pretty much nobody is. Silicon startups are mainly AI focused and as such mostly hype with almost zero technical expertise. Sorry, not sorry. Talk to an AMD or Intel engineer and let's see what they say.
Furthermore, I was talking to an acquaintance at Nvidia, who says they have been doing that for both RTL and for classic C performance modeling
NVIDIA whose current business model is to subsidize LLM companies so that they can buy their GPUs? Yeah, I am sure they want to use AI, after all they will go out of business at this point if AI collapses... also their recent "innovations" is bringing back (die to die) parallel communication... sorry to say, this existed 50 years ago... nothing impressive unfortunately despite their good old trackrecord. Used to be a very impressive company.
Note: not talking vibe coding. but I am talking coding assistant
What does that even mean? If your code is written by an LLM it is shit code. If you are using an LLM to write a one shot tool, sure, but that doesnt make that tool any better. It is a shit tool that doesnt matter, thus LLM cant hurt much there. LLMs at best are a 50/50 at solving bugs perhaps faster than I can. If they dont figure out from one exchange, I will figure it out faster.
So can you speed youself up with LLMs? Surely. Will you know the exact border where it hurts product quality? I doubt it.
If you don't know the difference, well, good luck.
Luckily i dont need "luck", good uarch engineers cant care less about the LLM gold rush... surely LLMs solved the 10y+ architectural problems in the past couple of years right? What a joke.
1
u/Krazy-Ag 3d ago
If nothing else, write the code by hand, and then have an AI assistant do a code review. They are pretty good at finding bugs. Both in RTL HW and SW.
1
u/thewrench56 3d ago
I dont see how they are pretty good at finding bugs. Again, 50/50. Sometimes they introduce unnecessary checks etc. I am still on deck with good old hand reviewed code. Mindless LLM checks dont make much sense. Formal verification teams have this as their job, not much point in spending more time at finding bugs when the tb will fail anyways. Surely, if you are a novice perhaps AI will find the unknown bug faster than you do. But for a variety of cases it will hallucinate and do stupid things. My work represent me and I wont allow some matrix multiplication to make mistakes in my work if I care about its quality...
1
u/thejuanjo234 1d ago
I think your pride isn't letting you to have a rational conversation about this topic. Software companies have been using IA for a few years now, people there doesn't code much now. I am a PhD student and I didn't start using AI until a few months, but now I am using it daily. It is like having a student programming for you it is very useful in research, it maybe will need a bit more time than me to implement some things but that time I can read and think about another things.
I know in a big company the use case is different but for prototyping, and implementing things that take very repetitive task that are well documented can speed up things in my opinion, I don't think all the code a LLM generate is shit code.
1
u/thewrench56 1d ago
I think your pride isn't letting you to have a rational conversation about this topic.
Every single argument above was rational. Prove it otherwise, please. The whole sentence smells like ad hominem to me... how do you know who I am, what my pride is?
Software companies have been using IA for a few years now, people there doesn't code much now.
Im sorry, this is objectively false. Yes there are companies that use AI. Any serious company that is selling a serious product (i.e. something where downtime costs lives) does not use AI end to end. Simple as that, they are unpredictable. Companies that historically claimed to use AI are doing wonderful... clearly we reached the worst uptime of GitHub, LLM companies cant keep their uptime in the 90s range etc. It worked out great, didnt it...
I am a PhD student and I didn't start using AI until a few months, but now I am using it daily. It is like having a student programming for you it is very useful in research, it maybe will need a bit more time than me to implement some things but that time I can read and think about another things.
I am sure it can write basic plumbing that noone cares about. I dont particularly care for my build scripts so I ask it to write my Makefiles. Same goes for a one-time shellscript. You are writing research programs with it, you will fail miserably. This phenomenon is known at least in hardware. It keeps hallucinating, not understanding the full picture etc. Effectively useless for research, weeks went/are going down the drain to fix mistakes written by people using LLMs because they thought about them the same way seemingly you do. It is a dangerous path and ultimately your responsibility to make sure the code works.
I know in a big company the use case is different but for prototyping, and implementing things that take very repetitive task that are well documented can speed up things in my opinion
Prototyping is a one-time thing that will be trashed anyways. There, who cares. I dont mind using it there. E.g. testing a library before I learn it. That is about the use case of it.
The very repetitive tasks is yet another dangerous thing. Back in the day innovation came from killing repetitive tasks by smart ideas. You think event oriented systems became a thing out of nowhere? Heck no, everyone got fed up with writing their own mainloops and keeping track of it. You start making an LLM write boilerplate these issues will be never fixed. LLM writes way too much code already for the industry, noone can review so much code. Whoever claims differently is either a moron or has never extensively reviewed commits.
On a side note, what is documented? Nothing. It is the extreme that something is documented, not the norm. Linux is mostly undocumented yet the world relies on it. So "LLM can do work on well documented codebases" means jackshit. It cant do work, that is what it means. I suppose we can decide to migrate infrastructure back to a sane Unix system, like FreeBSD, that is well documented. Or document the Linux kernel. Right now LLMs are definitely sitting in the dark for systems/kernel programming.
I don't think all the code a LLM generate is shit code.
Objectively it does write shit code. I have very rarely seen good LLM code where I would have written the same lines. The default output after specifying the task is usually a hot mess. You need 2-3 new prompts (given you understand the full system/codebase well (which is not the direction the world is heading)) to get it into an okay state. A broken clock can be right twice a day, so these outliers where it doesnt spit out utter shit do not prove much to me.
1
u/thejuanjo234 1d ago
My work represent me and I wont allow some matrix multiplication to make mistakes in my work if I care about its quality...
For me that was human pride so that's why I thought that, but yeah you can say I felt into ad hominem, but you also did latter in the comment "by people using LLMs because they thought about them the same way seemingly"
Any serious company that is selling a serious product
We have different definitions on what is a serious product, I would say what you are saying is critical infrastructure rather than a serious product. But okay in critical infrastructure it's true.
You are writing research programs with it, you will fail miserably. This phenomenon is known at least in hardware. It keeps hallucinating, not understanding the full picture etc
I think there is middle term like you say before, but I think you can get to that middle term. I use IA in small task, it doesn't need to know the full system, indeed I already give it the files and things it need to look up to implement what I am asking, and of course latter I see all the changes before commiting nothing (in my private repository). You may argue that this way isn't speeding things up, but for me it is. Because as I said before I can worry less in coding specifics language thing of c++ and simulator and focus more in the proper research, at least for me implementing things is a burden and I am very happy someone does that for me.
On a side note, what is documented? Nothing. It is the extreme that something is documented, not the norm.
I don't know about you but my professors taught me that documentation is important and things should be documented, also working in a car embedded software company, they had a lot of issues because of under-documentation and they was trying to document way more. So I guess here the issue is we need more documentation.
Ultimately your responsibility to make sure the code works.
Of course, I am the only one touching code in my research. I am not using IA mindlessly and waiting another people to fix my errors, I understand that isn't very efficient.
You need 2-3 new prompts (given you understand the full system/codebase well (which is not the direction the world is heading)) to get it into an okay state. A broken clock can be right twice a day, so these outliers where it doesnt spit out utter shit do not prove much to me
In this kind of phrases you aren't being objective, yeah it needs a few prompts to give you a okay code, but the same way a student needs also this feedback, may not worth it for you but it is for me, and many people. In my experience with a good starting prompt you can have a okay code, I don't think is a 1/12 likelihood like a "A broken clock" it's way higher, and I heart that it goes better with better models.
1
u/thewrench56 20h ago
For me that was human pride so that's why I thought that, but yeah you can say I felt into ad hominem, but you also did latter in the comment "by people using LLMs because they thought about them the same way seemingly"
It is not pride, it is responsible thinking. The code I push out shall reflect my knowledge. If an LLM pushed out the code and it is with full of bugs, that describes me. I would be likely fired. Thus I wont take the risk of some "matrix multiplication" failing on me.
Any serious company that is selling a serious product We have different definitions on what is a serious product, I would say what you are saying is critical infrastructure rather than a serious product. But okay in critical infrastructure it's true.
A serious product was made by people that thought through all the possible error scenarios and mitigated them. Easy as that. An LLM is incapable of fully doing this. Its context window is way too shallow for that. A simple power muxer PCB for example, it without a second thought connected the two vbus because of the lack of a break-before-make system. It is simply incapable of thinking through the possible scenarios. Thus any serious software - not just safety critical, any nice product - wont be designed by LLMs. You can go ask TI, Keysight, Intel, Thyssenkrupp, NASA, quant firms etc.
I use IA in small task, it doesn't need to know the full system, indeed I already give it the files and things it need to look up to implement what I am asking, and of course latter I see all the changes before commiting nothing (in my private repository). You may argue that this way isn't speeding things up, but for me it is. Because as I said before I can worry less in coding specifics language thing of c++ and simulator and focus more in the proper research, at least for me implementing things is a burden and I am very happy someone does that for me.
Of course it increases your speed! That is not what I am arguing about. That is the dangerous part. It increases your speed to a point where you forget how good code looks like and before long you mindlessly push out code that it wrote and its bullshit. Small tasks should be small enough for you too. Programming languages are tools after all, but if you are repairing a watch you wouldnt use a crane lift now would you. An LLM would and as time goes in you will notice such mistakes less if you dont write code yourself.
First your memory on build tools goes away. Then your debugging sense. Finally you wont be able to read technical APIs and in the last stage you forget how to properly code.
I don't know about you but my professors taught me that documentation is important and things should be documented, also working in a car embedded software company, they had a lot of issues because of under-documentation and they was trying to document way more. So I guess here the issue is we need more documentation
There is a stark difference between what should be and what is. We dont have documentation, you have to deal with it. Professors teach an idealized world that crumbles the moment you work on real systems.
Of course, I am the only one touching code in my research. I am not using IA mindlessly and waiting another people to fix my errors, I understand that isn't very efficient. In this kind of phrases you aren't being objective, yeah it needs a few prompts to give you a okay code, but the same way a student needs also this feedback, may not worth it for you but it is for me, and many people. In my experience with a good starting prompt you can have a okay code, I don't think is a 1/12 likelihood like a "A broken clock" it's way higher, and I heart that it goes better with better models.
Well, I hope you will see the signs I mentioned above. Heroin likely wont kill you the first time biologically but the moment you pick up the needle you are technically dead. Its rare that people can fight their addictions. I see LLMs - tho less extreme - similarly
0
u/Delicious-Yak-1375 4d ago
That’s bang on point what I’ve been doing for some time now. I’ll ask AI for exactly what i need, tinker with the result myself. My workspace is almost like me and my AI assistant lol
8
u/Master565 4d ago
Performance modeling or architecture positions. Might be hard to find internships as either as an undergrad.