“CPUs excel at performing multiple tasks, including control, logic, and device-management operations, but their ability to perform fast arithmetic calculations is limited. GPUs are the opposite. Originally designed to render 3D video games, GPUs are capable of fewer tasks than CPUs, but they are specially designed to perform mathematical calculations very rapidly.” I thought the advantage of the GPU is not speed but…
It's useful to think of GPUs as CPUs with low core frequency but incredibly wide SIMD instructions. They are very good at doing the exact same instructions in parallel (apply this formula to 4 million pixels), they are fairly bad at anything that includes branches or loops (doesn't fit the SIMD model), or random memory access (only so much memory bandwidth to go around between all the cores).
That makes GPUs generally good at arithmetic tasks, but horrible at control or logic tasks since those usually involve lots of branching.
“CPUs excel at performing multiple tasks, including control, logic, and device-management operations, but their ability to perform fast arithmetic calculations is limited. GPUs are the opposite. Originally designed to render 3D video games, GPUs are capable of fewer tasks than CPUs, but they are specially designed to perform mathematical calculations very rapidly.” I thought the advantage of the GPU is not speed but…
> I thought the advantage of the GPU is not speed but parallelism or are modern power saving processors also slow compared to GPUs on non-parallel tasks? Fast and parallel are two ways to say the same thing, or in other words, the wide parallelism of the GPU's many math cores is what makes it faster than CPU's relatively small capability to do math in parallel. (The x-factor is so large, the power saving features don…
I think they're actually asking, if you have a single "thread" of a GPU, is that one thread quicker at math than a single thread of a CPU? The most fair comparison imo might be a single "warp" in nvidia terms against a single CPU thread, which is roughly similar to what a CPU might be doing for AVX.
For some context, WRF ( https://github.com/wrf-model/WRF ), the current state-of-the-art weather modeling system (also developed by NCAR) can (to my limited knowledge) only run on CPU. There have been efforts to run it on GPU ( https://wrfg.net )... though it doesn't look like it's been kept up to date. It seems like FastEddy mostly replaces WRF-LES, which is used for high-resolution localized modeling.
There have been at least 2 cuda implementations of WRF ARW afaik, and it seems they are not widely recommended because of numerical differences from the reference implementation. However having run ARW a lot, I would definitely not do it again on CPU.
This might enable simulation but forecasting is a chaotic problem isn't it? It's essentially like trying to predict a stream of random numbers - even if they follow a certain attractor, it's still impossible to know exactly what form they'll take.
Forecasting is done, and it's done by creating ensembles of weather simulations. Weather is chaotic, which is why forecast accuracy rapidly drops off the further out in time you make predictions. But still, they can be accurate enough far enough out into the future to be extremely useful.
A few years ago I heard it said that a 5 day forecast has the accuracy of a 48 hour forecast from two decades ago.
> I thought the advantage of the GPU is not speed but parallelism or are modern power saving processors also slow compared to GPUs on non-parallel tasks? Fast and parallel are two ways to say the same thing, or in other words, the wide parallelism of the GPU's many math cores is what makes it faster than CPU's relatively small capability to do math in parallel. (The x-factor is so large, the power saving features don…
I think they're actually asking, if you have a single "thread" of a GPU, is that one thread quicker at math than a single thread of a CPU? The most fair comparison imo might be a single "warp" in nvidia terms against a single CPU thread, which is roughly similar to what a CPU might be doing for AVX.
It’s much slower. GPU single thread performance is very slow. Unless you are doing some specialized operation that has a special instruction on GPU, it will be slower.
GPU clock speeds are lower in general and the CPU has a much wider super scalar pipeline. Can be 4-8 wide vs single or double wide for most GPUs. It also has many latency-hiding techniques for a single thread. The GPU has none, it uses multiple threads to hide latency.
For some context, WRF ( https://github.com/wrf-model/WRF ), the current state-of-the-art weather modeling system (also developed by NCAR) can (to my limited knowledge) only run on CPU. There have been efforts to run it on GPU ( https://wrfg.net )... though it doesn't look like it's been kept up to date. It seems like FastEddy mostly replaces WRF-LES, which is used for high-resolution localized modeling.
There have been at least 2 cuda implementations of WRF ARW afaik, and it seems they are not widely recommended because of numerical differences from the reference implementation. However having run ARW a lot, I would definitely not do it again on CPU.
I’ve been out of the field for a decade now, but I’m not surprised WRF is still the dominant model. So how different is ARW from the reference implementation? Model physics are not quite real physics anyway, and your initial conditions have some garbage and low sig figs anyway. Is the error propagation measurable — does it make long term forecasts significantly worse?
There have been at least 2 cuda implementations of WRF ARW afaik, and it seems they are not widely recommended because of numerical differences from the reference implementation. However having run ARW a lot, I would definitely not do it again on CPU.
I’ve been out of the field for a decade now, but I’m not surprised WRF is still the dominant model. So how different is ARW from the reference implementation? Model physics are not quite real physics anyway, and your initial conditions have some garbage and low sig figs anyway. Is the error propagation measurable — does it make long term forecasts significantly worse?
I'm not a domain expert but I would expect weather patterns to be chaotic and thus even small perturbations (errors) can lead to significant divergence.
But why? What do I do with a forecast about wind speeds in urban areas? Let's be generous and say the forecast will be able to tell me one hour in advance about wind speed and direction on every street in my neighbourhood. Now I order a drone-delivered pizza. What does the drone do with this knowledge? It still needs to get the Pizza from A to B, ASAP.
There have been at least 2 cuda implementations of WRF ARW afaik, and it seems they are not widely recommended because of numerical differences from the reference implementation. However having run ARW a lot, I would definitely not do it again on CPU.
I’ve been out of the field for a decade now, but I’m not surprised WRF is still the dominant model. So how different is ARW from the reference implementation? Model physics are not quite real physics anyway, and your initial conditions have some garbage and low sig figs anyway. Is the error propagation measurable — does it make long term forecasts significantly worse?
I've mostly been out of it for 7 years or so as well and only been looking at it from a far as these things have changed. Waiting for something like the model in the original article to come into existance.
But why? What do I do with a forecast about wind speeds in urban areas? Let's be generous and say the forecast will be able to tell me one hour in advance about wind speed and direction on every street in my neighbourhood. Now I order a drone-delivered pizza. What does the drone do with this knowledge? It still needs to get the Pizza from A to B, ASAP.
Drones/sUAVs tend to be pretty sensitive to wind and the weather in general. Being able to know, as you put it, the wind speed and direction on every street means being able to potentially avoid significant slow downs and/or running out of battery from having to use more power to compensate for the wind.
Of course that's if you can predict the weather with good enough temporal and spatial resolution to be useful. But to me it seems potentially useful.