Academics
follow us
Feedback

Arpan Dutta -From BITS to NVIDIA: His Path in Computer Architecture and Deep Learning

Arpan Dutta -From BITS to NVIDIA: His Path in Computer Architecture and Deep Learning

Arpan Shankar Dutta, a graduate of BITS Pilani (Hyderabad, ’18) with a Bachelor’s degree in Electrical and Electronics Engineering, has made significant strides in the fields of computer architecture and deep learning. His interest in computer architecture blossomed during his time at BITS, leading to an internship at ARM and subsequent positions at Texas Instruments and Intel. To deepen his expertise, Arpan pursued a Master’s degree at the University of California, San Diego (UCSD), where he further honed his skills. Currently, as a deep learning architect at NVIDIA, he focuses on deep learning acceleration, hardware design, and performance optimization. Arpan’s journey highlights the importance of a solid academic foundation, practical experience, and an unwavering passion for innovation in technology.

Q 1: Can you tell us about your experience at BITS and how it shaped your future?

My time at BITS was incredibly formative. I wasn't involved in any clubs, but I spent a lot of time with friends. We used to be at the night canteen a lot. Initially, I wasn't doing great academically — my GPA was low at around 2-1 because I was caught up in watching anime, TV shows, and playing games. However, things started to improve from there, and I eventually graduated with a GPA of about 8. Having a good GPA reduces some stress and opens up more opportunities. I credit the Professors at BITS for shaping my future. Their guidance and the level of students at BITS really pushed me to do better.

Q 2: How did you develop your interest in computer architecture and eventually get into the field?

During my third year in the EEE curriculum at BITS, I had a course on computer architecture and realized this was what I wanted to do. I enjoyed the subject and found that I was naturally good at it. I interned at ARM as a hardware designer, which helped me secure an off-campus placement with Texas Instruments. Transitioning from physical design to computer architecture was challenging, so I pursued a master's degree, focusing heavily on computer science courses. Since I didn't have a CSE background, I had to work twice as hard, learning bachelor's concepts on my own while tackling master's level material. I also learned C and Python, and now I work as a deep-learning architect. Learning machine learning helped me understand how it gets converted to code on a GPU and how it gets accelerated.

Q 3: What does your work as a deep learning architect at NVIDIA involve?

Many people confuse the role of a deep learning architect with that of a software engineer, which it isn't, unless it involves designing deep learning models. At NVIDIA, my job focuses on the hardware side, specifically on deep learning acceleration performance. I am part of the project and computer analysis team, assessing project performance on future architectures and providing guidance for current ones. My role involves determining the potential and limitations of our architectures and setting guidelines for the software team to achieve optimal performance. On the hardware side, I evaluate whether improvements benefit deep learning applications, requiring knowledge in deep learning, operating systems, compilers, and hardware design. I deal with tasks like network performance analysis and dynamic frequency voltage scaling. Additionally, I conduct performance studies across different GPUs and applications, working closely with the business department to guide product placement and pricing decisions based on our data and insights.

Q 4: What are your thoughts on AI and pursuing a career in this field in the future?

AI has a lot of potential, but there are still limits to what it can do. Tasks that require very specific and precise actions, like surgery and certain robotics applications, can't be performed by AI yet and will take time to develop. However, easier and more repetitive tasks are likely to be replaced by AI very soon. For those looking to pursue a career in pure AI and machine learning at the highest level, a strong background in mathematics is essential. But if math isn't your strength, there are other areas within the AI field to explore. For example, machine learning infrastructure is a growing area where you can work as a high-level software engineer with a focus on parallel computing, distributed systems, and similar technologies. This path allows you to contribute to AI advancements without needing an extensive math background.

Q 5: Can you share your experience at the University of California, San Diego (UCSD) and how you got in?

After finishing my bachelor's, I initially got rejected by several master's programs. However, my job experience at Texas Instruments, a GPA of about 8 from BITS, and a compelling Statement of Purpose (SOP) helped me get into UCSD. For BITSians with a GPA of 8+, two years of work experience, and a strong SOP, getting into UCSD is easy. Choosing the right specialization is crucial if you aim for computer architecture. Focus on relevant courses and be clear about your goals. UCSD is doing amazing in computer science and electrical engineering, and San Diego is a great place to live, with good weather and a beach nearby. The graduate housing is also very good. UCSD offers better opportunities for assistantships compared to private institutions. I recommend pursuing a master's after at least two years of work experience to have better clarity in your studies.

Q 6: What kind of projects did you work on at BITS, and how did they influence your career?

One of the standout parts of my time at BITS was the project work in the computer architecture course. These study and design-oriented projects focused on processors. While my interests were still developing, these projects gave me a broader perspective on approaching both academics and the industry. Professor Surya Shankar Dan and Professor Chetan Kumar significantly impacted my understanding. The most impactful projects I included on my resume were from my computer architecture course and an internship at ARM, which played a key role in getting me into Texas Instruments. During grad school, I worked on projects in deep learning, machine learning, computer architecture, parallel computing, distributed computing, and systems, including a computer architecture internship at Intel. Choosing the right courses and projects was crucial in shaping my career and getting me to where I am now.

Q 7: What skills have been crucial in your journey and current role?

Given the diverse nature of my current position, a wide range of skills has been essential. Everything from hardware design knowledge to computer architecture, operating systems, compilers, and programming in C and Python has come in handy. The roles in computer architecture require expertise in the field as well as a strong understanding of these other areas to perform effectively. Having a solid foundation in these skills was key to landing jobs initially. My research internship, in particular, helped me develop the ability to think critically and approach problems from multiple angles. This broad skill set has been crucial throughout my career and continues to be important in my current role.

Q 8: What does it take to get into a computer architecture role?

Getting into a computer architecture role requires a strong background. About 70% of my colleagues have Ph.D.s, so significant research experience during your master's or being from a top-tier college is essential. You need a solid foundation in hardware design, dynamic frequency voltage scaling, and computer architecture (including CPU, GPU, and machine learning accelerator architecture). Understanding these concepts helps you make informed decisions. Proficiency in software courses like operating systems, compilers, parallel computing, distributed systems, and networking is also important. Basic computer science courses can be picked up from resources like YouTube. If you're interested in machine learning acceleration, taking ML courses is crucial. Planning is key, especially if you're coming from an electronics curriculum. You'll need to work hard and accept doing double the work compared to a traditional computer science student. Top three essential courses: operating systems, parallel computing, and compilers. Adding distributed systems would be beneficial.

Q 9: What advice do you have for those thinking of pursuing a career in computer architecture?

A: If you're not already in an Electronics or Computer Science curriculum, getting into computer architecture is extremely challenging. You need to develop discipline and work hard, especially during times when you lack motivation. It's crucial to find what you like early on to help put in that initial effort. Having a decent GPA is important as it opens up opportunities to pursue what you enjoy. It's essential to figure out your priorities, gain clarity, and allocate time to work towards your goals. However, it's also important to balance your time, making sure to sleep and enjoy yourself to prevent burnout. Consistency is key. It's better to do a little bit every day rather than trying to tackle everything at once. This is common advice, but it's often hard to follow. For me, this approach made a significant difference. Regular, steady progress is more effective than sporadic, intense effort.