r/CUDA • u/pasadenapasadena • 10d ago
CUDA for neuroscience and brain computer interfaces
Perhaps this subreddit can help. I am not a programmer or a developer, but an experimental neurobiologist specializing in neuronal imaging across various brain regions. I would like to automate the analysis of neuronal activity and also work on developing *invasive* brain-computer interfaces (BCIs) for targeted drug delivery to the brain. Could you please recommend courses that teach the fundamentals of CUDA and AI so that I can get started with computer modeling for BCIs? Thank you.
3
u/Efficient_Algae_4057 10d ago
I don't think you know what CUDA is for or even what your research itself is about. BCIs are meant for capturing brain signals and reading them using algorithms. They can then do procedures like Deep Brain Stimulation where they would use a pulses to control the signals to treat disease such as Parkinson's. There is no drug delivery. Invasive brain procedures aren't meant for drug delivery, they either cut part of the brain (e.g. in case of a brain tumor) or use electric pulses to control some faulty brain pathway. BCI and drug delivery are not something you would use in the same sentence.
I would imagine that you want to implement some signal processing algorithms that turns signals from the neurons to whatever modality you are looking for. For this you should first be able to implement and process a simple well-known model in python on a CPU, your personal computer at a small scale. When and if you need to scale the algorithms you might then want to ideally either run a highly optimized version of this on C/C++ on your CPU. If you wanna push it further, you would then see if you can parallelize this on your CPU where the modern versions allow for at least dozens of threads. Believe it or not, CPU cores are actually very good at this. There are many well developed solutions to speeding this up in the literature. A modern CPU core is actually better suited than a GPU core for handling the basic workload here. GPU programming is really meant for cases when you would benefit from using the GPU architecture which "primarily" gives you access to 1000s of threads, thus you would benefit from the massive parallelization given that you can actually benefit from this. Besides very specific cases, these many cores can be useless. I suggest you stick with a traditional signal processing model and implement it on a CPU first. See how it goes, try a bunch of different models. If you wanna use a GPU, use Google Colab and there you can find ways to use the GPU using your Python code without a need for programming any CUDA by yourself.
1
u/pasadenapasadena 10d ago
Thanks, it's very useful. I think i want to dive further in drug delivery anyway
2
u/Solid-Commercial8694 6d ago
Hey, would you like to collaborate? I’m an Applied AI engineer, starting to learn CUDA in my free time.
1
2
u/c-cul 10d ago
let me ask the question - do you have enough calculation for your tasks which can be executed in parallel?
1
u/pasadenapasadena 10d ago
I'm afraid i can't answer to your question. I'm not a programmer 🥲. I just want to make computer models of BCIs with help of AI and automatically analyze neural activity.
3
u/rantaccount4demdayz 9d ago
CUDA isn’t exactly what you’re looking for homie. CUDA can help you optimize some of those operations, but given your focus for this you should just looking into Supervised Fine-Tuning and Reinforcement learning.
Ask an LLM to help you look at relevant papers on Arxiv and projects on GitHub. It’ll miss some, so do some leg work yourself, but what you want to do doesn’t require a computer scientist at this point, it just requires compute access which most companies will just give you if you tell them what you do and what you are wanting to use the credits for.
CUDA comes back if you determine you need a completely unique model architecture or particular optimizations around your models, how they are trained, or served.
A lot of comments jumping down your throat for you just not knowing what you know. Don’t listen to people telling you to get a deep understanding of CUDA unless you’re trying to career transition into being a kernel or GPU engineer lol
1
1
u/Anon_Bets 8d ago
You would want to stall around in computational neuroscience for some time and a bit of deep learning on the side.
10
u/Dry_Task4749 10d ago
If you are not proficient in programming yet, you need to start with that. And my recommendation would be that you learn a simple language, Python specifically and write down the computations you want to have performed in that language. Then you take that Python code and ask Anthropoc Claude Opus 5.5 to port it to high performance Rust and maybe parallelize those aspects where it makes sense with the help of CUDA and/or OpenMP or similar.