WRF GPU port (FahrenheitResearch)

szamorodni

New member
Hello,

I just learned that there is a new Github repository (FahrenheitResearch/wrf-gpu-port) which provides python scripts that insert OpenACC directives (!$acc kernels, !$acc data, and !$acc routine) into the .f90 source files. It patches the latest stable version of WRF (version 4.7.1) to utilize the GPU for the small_step, big_step, diffusion, module_em parts of dynamical core (no physics parameterizations or advection yet).
The software is compatible with RTX 3090/4090/5090, A100, H100, H200 and B200 GPUs and is free in contrast to TempoQuest AceCast.

I managed to compile it successfully, but there is no sign of GPU usage on my 5090. Has anyone experience with this software solution?
 
We are not aware of the wrf-gpu codes. Since NCAR has decided to freeze WRF development, it is not our priority to involve in WRF-GPU implementation. Hope someone in the community can provide more information.
 
Hi

I pulled the repository in myself... He pulled it offline for some reason now though...

The documentation however was sadly all over the place with multiple readme.md's conflicting eachother (wildly) but i was also able to compile it.

I used it on a 4080 Super... the compilation went fine. The patch however and the documentation around it was totally conflicting with the prompts in the cli as well.

E.g. in the readme it stated you needed to run compile em_real again after the patches. But doing that jut compiles the normal wrf again.

The prompt however after you do the patches mentions you needed to run an .sh script (compile_patched.sh) to patch the cuda code..

The documentation was enormously conflicting in what the patches did as well. It should (according to the documentation) ensure that the advection was disabled. But it wasn't.

After fiddling around with it I was able however to see the WRF executable in my nvidia monitor

I could see the memory being filled & the gpu process climbing in usage... however... it just stopped & silently hangs after the very first timestep is being calculated. No errors, no notice, no nothing.

That's as far as I was able to get something out of it though but at least the GPU process showed up.

You looked any further?
 
Hello everyone I want to start by saying I am sorry for the confusion. I am a ML researcher/engineer that primarily works with reinforcement learning and every time a new frontier LLM comes out, I like to give it a few lofty tasks, one of which being “write GPU/CUDA kernels for WRF”. The only reason I had the GitHub repo set to public was because writing kernels and testing them was just a huge trial and error and I had like 8 different community rented GPU instances as each time I’d see progress, it meant an extra 30 minutes of runtime for verifying results. And because they were community rented, I didn’t want to have my GitHub credentials on their instances and didn’t want to have to wait an hour for the slow r-sync every time I stood up a new GPU instance.

I got what I wanted from that phase of the process and have continued work privately on some local servers I put together, and anticipate that the new LLM models (Claude fable, GPT 5.6 SOL) will be able to make much more progress as they have vastly improved long context handling.

Again I apologize for those of you that tried to use what was at the time a broken project, it is in a much better state today and I would guess probably a month away from having an actual working version that does more than just load the gpu’s vram
 
Back
Top