 Hi, this is your host, Anil Bhatia, and today we have with us James Reinders, engineer and one API chief evangelist at Intel. James, it's great to have you on the show. My pleasure. And today we are going to talk about Cyclomatic, the open source announcement before we talk about the open source aspect of it. Could you tell us about Cyclomatic? Oh, absolutely. So, you know, there's this rise of heterogeneous computing. And so there's this question of programming for heterogeneity. And Cycl is a technique to extend C++ for that, you know, in a fashion that's very open. And so there's a lot of interest in migrating existing CUDA code, you know, that's written in invidious CUDA to Cycl. So Cyclomatic is a project that will take and analyze a CUDA program and do a great deal of the work for the developer at doing the conversion and end up with a program in Cycl that the programmer can refine and tune and then be taking advantage of Cycl. Excellent. What was the need to create this project? Isn't there already some solutions that try to solve it? I don't think there's a solution that does what Cyclomatic does. I know there isn't. It's, you know, the general question of actually migrating your code and helping you move to modern C++ with Cycl is a unique aspect of Cyclomatic. There have certainly been efforts to take and try to run CUDA code on other machines like the HIPP project from AMD that certainly take CUDA code and run it on other machines. But Cyclomatic is unique in helping with a true migration to modern C++ with Cycl. Can you talk about what kind of pain points for developers are you trying to address with this project? Well, CUDA arose from the popularity of NVIDIA GPUs and especially in HPC and AI. And so there's been a lot of development but that as the market matures and there become a lot more hardware options for accelerators, there's a pain point because CUDA is strongly defined specifically for GPUs and for NVIDIA GPUs. So, Cycl takes a broader view of accelerators. They can be GPUs for many vendor, they can be FPGAs, they can be AI chips. And so really to take full advantage of this explosion of new hardware options, Cycl is a better choice. So developers that are looking for their programs to take full advantage of C++ and be more vendor agnostic, C Cycl is a solution for them. So certainly if you're not feeling pain, if all you wanna do is use NVIDIA GPUs, Cyclomatic is not for you but it does help developers who are looking to broaden the exposure of their program to more hardware. Let's talk about what are the use cases where Cyclomatic or CUDA can help engineers and scientists? Well, absolutely. But to take a look at where CUDA and Cycl are used, it's at a certain level of the stack, right? So if you're gaming, there's some level of that stack, maybe the physics engine or so forth that has some code written in CUDA or can be written in CICL. If you're on a cloud doing data scientist work, you're using TensorFlow or you're using PyTorch, there's a layer in there that will have CUDA code or CICL code. And that's where this is aimed. So there's a vast amount of code around the world. Of course, scientists doing a protein folding, looking for new cures to viruses, there's, or doing oil exploration. There's lots of applications out there that do many different scientific, solve scientific and engineering problems. Somewhere in their stack, they may have some CUDA code that can be migrated to CICL to give it, the opportunity to take advantage of more hardware. That's where this is focused. Let's talk about the open source expect. First of all, Intel is not new to open. You folks have been doing open source for a very long time. So sometimes asking this question also, I feel like, why am I asking this too? But I think it's very important to repeat the message again and again because they're always new folks. So first of all, talk about the importance of open source of Intel and then we'll talk about why you decided to open source it. Yeah, open source has many dimensions to why it's wonderful, but I think the greatest one is the opportunity for the community to come together and contribute and not be locked out. If someone feels strongly about adding a certain type of support or functionality, the option is there to everyone to participate. And we've benefited enormously from that. The projects that we've created over the years that have gone on to be very successful do that because of community involvement. Both the ability to look at the code and give us some feedback on it and the opportunity to go in and propose changes and make additions on their own. What are the immediate or long-term goals of this project and what kind of community do you think is being built or growing around the project? Cyclomatic, the process of taking someone's source code and converting it, it depends a lot on the style of writing the code, the particular functionality they used and so forth. And we've had a number of experiences with people with CUDA code that they're migrating it that say, hey, we wrote it this certain way and there's kind of a simple little change. If we made it to the Cyclomatic tool, it would help us with that conversion. And so it's a great example of community being able to understand their code, understand that the tool is doing most of what they wanted, but there's one more thing that they added it would make their life easier. And the opportunity to just go do that themselves, we've had a number of different community members say, hey, we could just do this. And so we're really excited about opening that up. Now, there are people with bigger ideas too that generalize this, that say, hey, we could add on to this structure. So we really look forward to the innovation that may come with that. There have been people who have said, hey, I think we could take CUDA code and we could do something useful to sketch out a Python program. And I don't know frankly, if that's, that'll bear fruit, once you get things in open source, the community can look at the general problem of taking code that was written in a very proprietary fashion and then leveraging it for the whole community and having this automatic conversion tools opening up a lot of conversations. I look forward to seeing what comes of it. What kind of user base is already there in most open source projects, especially when they come from company like Intel. There's only a substantial user base around those products. So talk about what kind of user base is already there and what kind of adoption are you expecting? Absolutely. There's been such huge interest in sickle in recent times. In fact, I think some of our group was at the ISC, the International Supercomputing in Germany and they had a boff and they had a room that only was supposed to hold like 180 people and it got filled with over 200 people. There's this excitement around sickle. So there is a big community of CUDA developers, especially in high performance computing and AI that have developed a lot of CUDA code. And so they form a very active community that is already using sicklematic or is interested in using it, interested in what possibilities it has. So you're right. We already have a community that's interested, that's engaged. We have developers working on it, maintainers. I think that's very important, because sometimes you say things open sourced and you wonder, well, who's going to carry it forward? You need people working on it. So the fact that we have users in a community already makes it a very strong project going forward with a lot of interest. So I see this exploding in the future in terms of growing and volume growing and interest because it's pretty early on still with sickle, but we see tremendous interest in it because it really does open up the possibilities for code to be more vendor agnostic to avoid the vendor lock-in that you would associate with a proprietary language like CUDA. James, thank you so much for taking time out today and talking about this project. I'm also sure you know that what kind of community is already there, what kind of excitement is there. And once again, thanks for creating one more open source project. And I would love to have you back on the show. Thank you. It was my pleasure. Thanks.