Topics i need to understand to start contributing

Hello,
I have good experience in python. I am very interested in first understanding and then contributing to numba. But, honestly, after going through numba’s code, I feel like I am way out of the league and intrigued. What are the concepts one needs to be thorough to start understanding the implementation of numba? From a user perspective, numba is very easy to use. But, I don’t seem to understand the design of Numba. Is there any article which I can refer to, which can give me some overview about this? Also, if someone can share with me concepts that I need to learn in order to be able to contribute to numba. Thank you…

1 Like

hi @rawwar , numba is harder than the average python project. Have you read the developer documentation Developer Manual — Numba 0.59.0dev0+182.gea28d935.dirty documentation?

I feel like I am way out of the league and intrigued

After two years of contributing I still feel like that, so I wouldn’t take it as a bad sign. I’ve managed to contribute a few things, but there are many things out of my league that I wouldn’t know how to even start. Those usually require someone with previous experience with compilers.

the repository contains many issues marked “good first issue” Issues · numba/numba · GitHub, those are accesible. I started with one of those, you could have a look and see if you understand what is going on: add uintp as a valid type to the tuple operator.getitem by luk-f-a · Pull Request #3740 · numba/numba · GitHub

have you contributed to other projects before?

Cheers,
Luk

1 Like

Thanks @luk-f-a , I choose This Issue as my starting point. And yes, i have been studying the developer manual since morning.

I have never contributed to open-source projects before. I have tried several times before, but I always ended up doing nothing. I see almost 20 issues with label good-first-issue. So, i am optimistic that if i put enough effort, I can make a successful contribution

One of the first things I learnt was how to write @overloads – then I created a guide here:

https://numba.pydata.org/numba-doc/dev/extending/overloading-guide.html

This may be a good start to learn more about Numba.

Beyond that, I can recommend much patience and time; Numba can be a challenge at times.

1 Like

Thanks @esc . I gave myself a week to go through Cuda programming and get some understanding. I’ll definitely go through @overload guide.

Note that @overload doesn’t work for CUDA yet, and instead you need to use the low-level extension API. This is exemplified for CUDA in: extending-numba-cuda/Extending Numba's CUDA Target.ipynb at main · gmarkall/extending-numba-cuda · GitHub

You may also find these handy for understanding how the CUDA target works:

1 Like

Thank you @gmarkall . I have been studying cuda and its been fun and difficult so far. But, i am starting to understand stuff. I’ll go through the links you shared. Thanks again

@luk-f-a , @esc, @gmarkall … I have raised a PR against Issue-6040. I think I still have a long way to go to even start contributing to #6702. But, I think I am on the right track studying Numba’s developer manual.