Installing Nvidia’s CUDA 9.1 on Fedora 27


If you’re like me, you to want to make sure that you’re using an up-to-date version of your operating system. This is not a problem for the vast majority of software, but when it comes to CUDA, it seems that NVidia is always a bit behind the times and it seems that only end-of-life versions of Fedora are ever officially supported. This doesn’t prevent you from installing CUDA on non-supported versions of Fedora, it just means you have to jump through a few more hoops.

Below you’ll find how I installed CUDA 9.1 on my Lenovo Ideapad Y700 laptop with NVidia Optimus technology. In the near future I’ll update this post to include desktop instructions, though it seems like there shouldn’t be any major issues there.

Update: A few days ago, I finally updated my desktop to Fedora 27 and installed CUDA 9.1 there. The install went quite smoothly, and I was able to build all the samples by simple going into the main sample directory and typing ‘make’. On my laptop, this worked to a degree, but since I had to use bumblebee, it couldn’t locate an NVidia library for one of the samples. On my desktop, this was not an issue. Below, I’ve updated the text to be a bit more general.

Continue reading “Installing Nvidia’s CUDA 9.1 on Fedora 27”


How Rust Can be A Good Thing

20160820_135602_richtonehdrLast September I saw this article about a programming language I hadn’t heard about before. That language was Rust. At the time, I played around with it a tiny bit but saw no real compelling reason for me to invest the time into learning another language. Then, earlier this week I saw this article on arXiv, and decided to give Rust another look. Continue reading “How Rust Can be A Good Thing”

Things I’ve Learned About Programming

I may have previously mentioned how my days typically consist of programming. I have problems that I have to solve, I then have to think about how to solve them, then write some code to do just that. In my last post I mentioned how I was working on writing some MCMC code, and was finding it difficult to keep it very general so that it is highly reusable. Yesterday I got that code working and began doing so more intensive testing which revealed that there is another feature that I need to add, but it should only take a few minutes to do that thanks to the parameter file parsing library I’ve created. This got me thinking this morning about the things I’ve learned since I began programming, and I thought I’d share some of those as they may be useful to others. Continue reading “Things I’ve Learned About Programming”

It’s hard to write good code…

I’m sitting at my desk trying to write some very general Markov Chain Monte Carlo (MCMC) code. I’m aware that there are libraries out there which could be used, but when I investigated them they were all so difficult to use that it just made sense to write my own code. At that time, I just wrote some code that was very specific to one problem. Now, I’m trying to generalize that code to be applicable to any problem. That is where things get hard.  Continue reading “It’s hard to write good code…”