• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Optimize option pricing in GPU

Joined
5/21/09
Messages
13
Points
11
Hi,

I am asked to optimize an option pricing algorithm in Cuda GPU and vectorized the algorithms as much as possible. I am a novice and just wondering if anybody here knows any resources that I can read and study?

In my first experiment, I tried to optimize a loop in random variable generation because it took a lots of time. However, I found out the GPU results were significantly slower. I suspected that was caused by the fact that I had to copy four long vectors to GPU and then back to CPU.

Since the same option pricing algorithm has to be done for million times, I am thinking maybe it would be a better idea to move the entire option algorithm into GPU rather than just a loop. The GPU will create the intermediate arrays and I will only need to copy the results back to CPU.

What do you guys think?
 
I am also a novice. But I came across this post days ago. Someone replied with some suggestions and discussion about Cuda GPU with the optimization. See if it helps.
 
You would be definitely better with doing all of the stuff on the GPU - CUDA is all about pushing as much processing as possible to do in parallel into the GPU. I guess you're doing Monte Carlo, so regarding this you may wish to start with RNG code examples from CUDA SDK; the other part (implementing the pricing formula) should not be that hard once you digest CUDA programming manuals. The paradigm shift for CUDA programming is quite big (you just have to adapt your thinking to CUDA programming model, and be prepared to spend loads of time in debugging and optimization of your code), but the speed improvement could be awesome.
 
Back
Top