Monte-Carlo Pricing under a Hybrid Local Volatility...

77
Monte-Carlo Pricing under a Hybrid Local Volatility model ebastien Gurrieri Mizuho International plc GPU Technology Conference San Jose, 14-17 May 2012 ebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Transcript of Monte-Carlo Pricing under a Hybrid Local Volatility...

Page 1: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Monte-Carlo Pricing under a Hybrid Local

Volatility model

Sebastien Gurrieri

Mizuho International plc

GPU Technology ConferenceSan Jose, 14-17 May 2012

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 2: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Introduction

Key Interests in Finance

Pricing of exotic derivatives

Monte-Carlo simulations

Local Volatility model for Foreign Exchange Rates (FX)

Hybrid with Interest Rate models (IR)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 3: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Introduction

Key Interests in Finance

Pricing of exotic derivatives

Monte-Carlo simulations

Local Volatility model for Foreign Exchange Rates (FX)

Hybrid with Interest Rate models (IR)

Key Interests in CUDA

High-dimensional Monte-Carlo simulations

Texture memory (layered)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 4: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Introduction

Plan of the talk

Description of the problem and motivation for parallelprogramming and textures

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 5: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Introduction

Plan of the talk

Description of the problem and motivation for parallelprogramming and textures

Outline of implementation in CUDA

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 6: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Introduction

Plan of the talk

Description of the problem and motivation for parallelprogramming and textures

Outline of implementation in CUDA

Numerical tests

Call/Put options in Local Volatility (LV) modelExotic swaps in LV modelExotic swaps in Hybrid LV model

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 7: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Introduction

Plan of the talk

Description of the problem and motivation for parallelprogramming and textures

Outline of implementation in CUDA

Numerical tests

Call/Put options in Local Volatility (LV) modelExotic swaps in LV modelExotic swaps in Hybrid LV model

Conclusion on performance and use in industry

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 8: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Power-Reverse Dual Coupon Swap (PRDC)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 9: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Power-Reverse Dual Coupon Swap (PRDC)

Underlying swap: for a series of dates 0 ≤ Ti ≤ 30 years

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 10: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Power-Reverse Dual Coupon Swap (PRDC)

Underlying swap: for a series of dates 0 ≤ Ti ≤ 30 years

receive option on FXi with strike Ki :

+max(FXi − Ki , 0)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 11: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Power-Reverse Dual Coupon Swap (PRDC)

Underlying swap: for a series of dates 0 ≤ Ti ≤ 30 years

receive option on FXi with strike Ki :

+max(FXi − Ki , 0)

pay option on IRi with strike Qi :

−max(IRi − Qi , 0)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 12: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Exotic exercise

Target Redemption Note (TARN) with target A

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 13: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Exotic exercise

Target Redemption Note (TARN) with target A

Monitor coupon sum

Ci =

i∑

k=1

max(FXk − Kk , 0)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 14: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Exotic exercise

Target Redemption Note (TARN) with target A

Monitor coupon sum

Ci =

i∑

k=1

max(FXk − Kk , 0)

if Ci > A, cancel all remaining cash-flows

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 15: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Main features

Sensitive to FX smile

→ modelling of smile

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 16: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Main features

Sensitive to FX smile

→ modelling of smile

Sensitive to FX-IR correlation, IR volatility

→ modelling of IR stochasticity

→ multi-factor FX-IR hybrid

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 17: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The product: Main features

Sensitive to FX smile

→ modelling of smile

Sensitive to FX-IR correlation, IR volatility

→ modelling of IR stochasticity

→ multi-factor FX-IR hybrid

Path-dependent due to exotic exercise

→ mainly Monte-Carlo

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 18: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Dupire’s Local Volatility [1]

Diffusion with volatility σ(t,FX )

dFX

FX= (rd − rf )dt + σ(t,FX )dW

rd is the domestic interest rate

rf is the foreign interest rate

dW is a Brownian motion

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 19: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Calibration to the market of FX options

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 20: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Calibration to the market of FX options

Market characterized by implied volatility θ(t,FX )

→ once differentiable in t, twice in FX (ideally)

→ satisfies non-arbitrage conditions (ideally)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 21: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Calibration to the market of FX options

Market characterized by implied volatility θ(t,FX )

→ once differentiable in t, twice in FX (ideally)

→ satisfies non-arbitrage conditions (ideally)

Model fits the market exactly for Dupire’s condition

σ2(t,FX ) = f(∂θ

∂t,∂θ

∂FX,∂2θ

∂FX 2

)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 22: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Sampling the volatility

LV matrix defined as

σni = σ(tn,FXi)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 23: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Sampling the volatility

LV matrix defined as

σni = σ(tn,FXi)

Typical size ∼ 200× 200 = 40, 000 entries

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 24: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Sampling the volatility

LV matrix defined as

σni = σ(tn,FXi)

Typical size ∼ 200× 200 = 40, 000 entries

Bi-linear interpolation in t and FX

→ texture memory [2]

→ simple but lacks flexibility

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 25: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

The model: Sampling the volatility

LV matrix defined as

σni = σ(tn,FXi)

Typical size ∼ 200× 200 = 40, 000 entries

Bi-linear interpolation in t and FX

→ texture memory [2]

→ simple but lacks flexibility

Linear interpolation in FX at known t

→ layered textures

→ slightly more complicated but more flexible and/oraccurate

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 26: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

Summary

Multi-factor and path-dependent product

→ Monte-Carlo simulation

→ good speed-up expected with CUDA

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 27: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

Summary

Multi-factor and path-dependent product

→ Monte-Carlo simulation

→ good speed-up expected with CUDA

Model requires interpolation of a matrix

→ benefit from texture memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 28: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Description of the problem

Summary

Multi-factor and path-dependent product

→ Monte-Carlo simulation

→ good speed-up expected with CUDA

Model requires interpolation of a matrix

→ benefit from texture memory

Multiple cash-flows, monitoring, smile-modelling

→ large number of time steps

→ high-dimensional problem

→ inline random number generation

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 29: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 30: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 31: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

2 transform to Gaussian, then Brownian motion increment dW jn

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 32: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

2 transform to Gaussian, then Brownian motion increment dW jn

3 read previous spot FX jn from memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 33: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

2 transform to Gaussian, then Brownian motion increment dW jn

3 read previous spot FX jn from memory

4 calculate volatility σ by calling texture at (tn,FXjn)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 34: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

2 transform to Gaussian, then Brownian motion increment dW jn

3 read previous spot FX jn from memory

4 calculate volatility σ by calling texture at (tn,FXjn)

5 calculate new spot

FXjn+1 = FX j

ne(rd−rf −

12σ2)(tn+1−tn)+σdW

jn

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 35: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

2 transform to Gaussian, then Brownian motion increment dW jn

3 read previous spot FX jn from memory

4 calculate volatility σ by calling texture at (tn,FXjn)

5 calculate new spot

FXjn+1 = FX j

ne(rd−rf −

12σ2)(tn+1−tn)+σdW

jn

6 calculate product(s)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 36: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

2 transform to Gaussian, then Brownian motion increment dW jn

3 read previous spot FX jn from memory

4 calculate volatility σ by calling texture at (tn,FXjn)

5 calculate new spot

FXjn+1 = FX j

ne(rd−rf −

12σ2)(tn+1−tn)+σdW

jn

6 calculate product(s)

7 write new spot in memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 37: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Single-thread:

• On each path j , at each time tn

1 calculate next uniform random number

2 transform to Gaussian, then Brownian motion increment dW jn

3 read previous spot FX jn from memory

4 calculate volatility σ by calling texture at (tn,FXjn)

5 calculate new spot

FXjn+1 = FX j

ne(rd−rf −

12σ2)(tn+1−tn)+σdW

jn

6 calculate product(s)

7 write new spot in memory

• Loop on path, then time.

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 38: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Sequential in time, parallel on paths

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 39: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Sequential in time, parallel on paths

Grid configuration

1-dimensional grid of Nblocks blocks1-dimensional blocks of Nthreads threadss = Nblocks × Nthreads = number of concurrent threads

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 40: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Sequential in time, parallel on paths

Grid configuration

1-dimensional grid of Nblocks blocks1-dimensional blocks of Nthreads threadss = Nblocks × Nthreads = number of concurrent threads

Thread j calculates paths j , j + s, j + 2s, etc ...

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 41: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Sequential in time, parallel on paths

Grid configuration

1-dimensional grid of Nblocks blocks1-dimensional blocks of Nthreads threadss = Nblocks × Nthreads = number of concurrent threads

Thread j calculates paths j , j + s, j + 2s, etc ...

Thread j must remember previous spot values for pathsj , j + s, j + 2s, etc ...

→ too much for shared memory

→ store previous spot values in global memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 42: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Thread j :

calculates products on paths j , j + s, j + 2s, etc ...sums them in local variablewrites sums in shared memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 43: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Thread j :

calculates products on paths j , j + s, j + 2s, etc ...sums them in local variablewrites sums in shared memory

Synchronize

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 44: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Thread j :

calculates products on paths j , j + s, j + 2s, etc ...sums them in local variablewrites sums in shared memory

Synchronize

In each block:

one thread is attributed to each productaccumulates in a local variable all thread sums for this productwrites ”block-partial” sum in global memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 45: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Global memory contains ”block-partial” sums for eachproduct, each block, at each time

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 46: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Global memory contains ”block-partial” sums for eachproduct, each block, at each time

Transfer to host

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 47: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread:

Global memory contains ”block-partial” sums for eachproduct, each block, at each time

Transfer to host

On host, sum results of all blocks.

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 48: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread: remark on random number generation

typical number of times: 500

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 49: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread: remark on random number generation

typical number of times: 500

typical number of factors: 2, but easily going to 3 and more

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 50: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread: remark on random number generation

typical number of times: 500

typical number of factors: 2, but easily going to 3 and more

typical number of simulations: 100K, but may want more

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 51: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread: remark on random number generation

typical number of times: 500

typical number of factors: 2, but easily going to 3 and more

typical number of simulations: 100K, but may want more

global generation requires minimum global memory

500× 2× 100, 000 × 4 = 400MB

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 52: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Multi-thread: remark on random number generation

typical number of times: 500

typical number of factors: 2, but easily going to 3 and more

typical number of simulations: 100K, but may want more

global generation requires minimum global memory

500× 2× 100, 000 × 4 = 400MB

cannot run on all devices, too restrictive for praticalapplications

→ use inline generation

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 53: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Desired interpolation

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 54: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Texture interpolation

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 55: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Linear rescaling is required

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 56: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Linear rescaling is required

Given spots FX0,FX1, · · · FXM−1, volatilities σ0, σ1, · · · σM−1

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 57: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Linear rescaling is required

Given spots FX0,FX1, · · · FXM−1, volatilities σ0, σ1, · · · σM−1

The volatility at any spot FX is

σ(FX ) = tex(αFX + β)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 58: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Linear rescaling is required

Given spots FX0,FX1, · · · FXM−1, volatilities σ0, σ1, · · · σM−1

The volatility at any spot FX is

σ(FX ) = tex(αFX + β)

with

α =M − 1

M(FXM−1 − FX0)

β =1

M

(1

2− (M − 1)

FX0

FXM−1 − FX0

)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 59: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Bi-linear interpolation with standard texture

σ(t,FX ) = tex2D(αFX + β, γt + δ)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 60: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Implementation Outline

Texture:

Bi-linear interpolation with standard texture

σ(t,FX ) = tex2D(αFX + β, γt + δ)

Linear interpolation with layered texture

σ(tn,FX ) = tex1DLayered(αFX + β, n)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 61: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Vanilla Options:

Performance of the texture (500 time steps, 500K simulations)

50% ∼ 70% speed gains with texture

good accuracy of the texture interpolation

∼ 100 points sufficient

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 62: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Vanilla Options:

Gain (single thread vs. GTX 460)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 63: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Exotic Swap (one factor):

Additional state variable on path j

Cji =

i∑

k=1

max(FX jk − Kk , 0)

→ one more read/write access from global memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 64: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Exotic Swap (one factor):

Additional state variable on path j

Cji =

i∑

k=1

max(FX jk − Kk , 0)

→ one more read/write access from global memory

Product calculated only at cash-flow times (at most 120)

→ less operations than for vanillas (500)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 65: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Exotic Swap (one factor):

Gain (single thread vs. GTX 460)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 66: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Exotic Swap (hybrid 2F):

rd follows Hull-White model

drd = (θ − ard )dt + σrdWr

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 67: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Exotic Swap (hybrid 2F):

rd follows Hull-White model

drd = (θ − ard )dt + σrdWr

it has a correlation ρ with FX

dWFX = g1√dt

dWr = (ρg1 +√

1− ρ2g2)√dt

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 68: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Exotic Swap (hybrid 2F):

rd follows Hull-White model

drd = (θ − ard )dt + σrdWr

it has a correlation ρ with FX

dWFX = g1√dt

dWr = (ρg1 +√

1− ρ2g2)√dt

2 additional state variable on path j

r j , e∫ T

0r jdt (numeraire)

→ two more read/write accesses to global memory

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 69: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Numerical Tests

Exotic Swap (hybrid 2F):

Gain (single thread vs. GTX 460)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 70: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Conclusion

Extention to 3F, barriers

→ very similar to 2F, TARN

→ should not be a problem

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 71: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Conclusion

Extention to 3F, barriers

→ very similar to 2F, TARN

→ should not be a problem

Extention to callables

→ Longstaff-Schwartz not entirely parallel

→ should not be a problem but gains may be lower

→ use Malliavin calculus? (Abbas-Turki, GTC 2010)

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 72: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Conclusion

Large gains on GTX 460 and for realistic products and pricingconfigurations

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 73: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Conclusion

Large gains on GTX 460 and for realistic products and pricingconfigurations

Possibility to run more simulations

→ more accurate Greeks

→ more efficient risk management

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 74: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Conclusion

Large gains on GTX 460 and for realistic products and pricingconfigurations

Possibility to run more simulations

→ more accurate Greeks

→ more efficient risk management

Value-at-Risk and Potential Exposure calculations possiblewithout approximations

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 75: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Conclusion

Large gains on GTX 460 and for realistic products and pricingconfigurations

Possibility to run more simulations

→ more accurate Greeks

→ more efficient risk management

Value-at-Risk and Potential Exposure calculations possiblewithout approximations

Large number of scenario testing possible on exotic portfolios

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 76: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

Disclaimer

This publication has been prepared by Sebastien Gurrieri of Mizuho International plcsolely for the purpose of presentation at this conference. The opinions expressed inthis presentation are those of the author and do not necessarily reflect the view ofMizuho International plc, which is not responsible for any use which may be made ofits contents.

It is not, and should not be construed as, an offer or solicitation to buy, or sell, anysecurity, or any interest in a security or enter into any transaction. This publicationmay include details of instruments that have not been issued. There is no guaranteethat such instruments will be issued in the future.

This publication has been prepared solely from publicly available information.Information contained herein and the data underlying it have been obtained from, orbased upon, sources believed by the author to be reliable. However, no assurance canbe given that the information, data or any computations based thereon, is accurate orcomplete. Opinions stated in this report are subject to change without notice.There are risks associated with the financial instruments and transactions described inthis publication. Investors should consult their own financial, legal, accounting and taxadvisors about the risks, the appropriate tools to analyse an investment and thesuitability of an investment in their particular circumstances. Mizuho International plcis not responsible for assessing the suitability of any investment. Investment decisionsand responsibility for any investments is the sole responsibility of the investor. Neitherthe author, Mizuho International plc nor any affiliate accepts any liability whatsoeverwith respect to the use of this report or its contents.

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo

Page 77: Monte-Carlo Pricing under a Hybrid Local Volatility Modeldeveloper.download.nvidia.com/GTC/...Monte-Carlo... · Mizuho International plc GPU Technology Conference San Jose, 14-17

References

1 B. Dupire, ”Pricing with a smile,” Risk 7, pp. 18-20, Jan.1994.

2 A. Bernemann, R. Schreyer and K. Spanderen, ”AcceleratingExotic Option Pricing and Model Calibration Using GPUs”,Working Paper, Feb. 2011.

3 http://sebgur.fr/sgdev.html

Sebastien Gurrieri Hybrid Local Volatility in Monte-Carlo