Prithviraj Banerjee24:44
It's a great question. So let me explain my thought just by going into the area of simulation itself. So I want to... The world around us is governed by the laws of physics, which are second order partial differential equations. So you can write those PDEs, and when you went to college you can take a very simple differential equation, linear, the simplest one you could analytically solve is e to the minus 2, something. This is how the equations go. But in the practical world, these problems have such complicated geometries by the time you take the CAD, define the boundary conditions, and so on, and you have the Navier-Stokes equations to solve, it is impossible to solve it analytically. So you have to solve it numerically. So you take those PDEs and you discretize them. You do finite elements, you have boundary conditions of the other nodes that are next to you, and you keep iterating on it, and that's how all our numerical methods work. The trouble with these numerical methods is the tradeoff between accuracy and speed. So suppose you solve that problem, the CFD, with a thousand elements, and you get an accuracy which is about 10% error, which may be fine for you, and you solve that in an hour. Say I don't like 10% error, I want it to be more accurate. It is very easy in our world to just instead of a thousand elements do 100,000 elements, and you get 1% error but it takes 100 hours. So the speed in our world of CAE simulation, CFD, is this problem: the accuracy versus speed. And we want both, we want both accuracy and speed. And furthermore, the third thing is these things are so complicated in terms of convergence, sometimes you do these crazy things with the machine and it doesn't converge. 'Oh my God, I didn't converge because of this, I should use a different mesh, I should use a different solver.' So there are these zillion tools that I have at my disposal, and the CAE analyst is using all of these things, and sometimes it works, sometimes it doesn't. So it's not that easy to... From a user's perspective, they just want to press a button and it just does it. That's the ultimate holy grail. So in our world, the problem is you have to be accurate, you have to be fast, it has to be easy to use, and converge all the time. That's the holy grail. So in my role as CTO, I look at all the solvers, I say how can I get to that current state to make it more accurate, faster, easy to use, and so on. So I have one pillar on numerical methods, and we just with advanced numerical methods, without using high performance computing, without using AI, you make it faster, easy to use, converge all the time, and so on. The second pillar is HPC. You work at AWS and you have all those high performance computing. So we take an algorithm and we parallelize it, put it on 100 processors using shared memory or message passing with distributed data decomposition, or with GPUs. So there are all these different things, but this is what I call brute force acceleration. I have a job that I've decided that I will use 1 million elements because of the accuracy I have, and it's taking me 1,000 seconds. I can use 1,000 processors and make it run in 1 second. That's brute force parallelism. The third pillar that we have is AI/ML, which is sort of your question. So AI/ML has been used in a variety of fields, but it has been used for recommendation engines, 'which restaurant should I go to?' It's wonderful for those things, or ChatGPT allowing you to write wonderful poetry and text. But the question that we asked is, can AI/ML be applied to numerical method simulation? And that's when I joined the company six years ago. My CEO said, 'What do you want to work on?' I said, 'I want to work on AI.' And the early work on AI that we did was to say, 'Okay, let's take a...' You have an AI model, and you have this six-stage neural network, and you have the weights of the neural network. You don't know what the weights are, so you start with some random weights on the neurons. You have an input, here is the output. So with random weights you will predict an output which will be completely wrong. There is an error at the output. You say, 'Now that there's an error, how do I minimize the error?' I do back propagation to adjust the weights of the neural networks so that my error is zero for this input-output combination. Then I give it a second input with a different boundary condition, different whatever, and with the first two sets of weights and my third input, I keep iterating. After about 100, 200 cases, I kind of converge on the set of weights on the neural network. And within that, there's all kinds of choices: should I have a six-stage network, should I have an eight-stage network, how many, what's the depth, what's the width, and that ties to the parameter size of your network. But assuming you have done all that, that's what SimAI does. So SimAI is a platform which allows a customer to take their... You have your problem, and then train it for the first 100 designs that you have, and the 101st design, instead of taking 100 hours, will run in a minute. That's the value proposition. Now, the AI is only as good as the data you train it with. So if you train it with this picture of an SUV, you train it with this SUV from Toyota, the 10 different versions, the Highlander, the 4Runner, the RAV4, and also the SUVs from Hyundai and the SUVs from Ford, so you are training it with SUVs. It learns. Then you give it a... If you are Airbus, you're making airplanes, you are not going to go from one airplane to tomorrow doing a submarine. You are actually doing only airplanes. So it is actually worth it. There is value in subtle variations, and that's what these designers do. They're doing thousands of designs of slightly different airplanes or slightly different cars, and so on. So there is value in SimAI. But then you ask a question, where is the future? The future is foundational models for AI, where the customer will not have to train any set of things. There's no need for a... ChatGPT is a foundational model. It has been trained on all the words in the English language and has learned how to speak, how to write poetry. The grand vision of AI with foundational models for physics is to do that. It is an incredibly hard problem, but that's what we are working on.