Flavien Vucko

Cédric Bosch

David Delafosse

trai tes i ter es et effectives da s u acier à haute résista ce sollicité e fatigue

Des essais de fatigue oligocyclique ont été effectués à différentes amplitudes de déformation plastique et à température ambiante, sur un acier à haute résistance, martensitique trempé et revenu. Les composantes internes et effectives de la contrainte d'écoulement ont été analysées par la méthode de Handfield et Dickson. La contrainte interne est affectée par l'amplitude de déformation plastique. Au contraire, l'évolution de la composante athermique de la contrainte effective est indépendante de cette amplitude. La composante thermiquement activée augmente avec l'amplitude de déformation plastique mais reste constante en fonction de la déformation plastique cumulée. Les évolutions microstructurales dans le matériau déformé en fatigue ont été étudiées par microscopie électronique à transmission et par diffraction de rayons X. Les évolutions des contraintes internes et effectives sont alors discutées en fonction de ces observations.

I. Introduction

The fatigue lifetime of materials is mainly controlled by initiation of a crack from microstructural or surface defects [START_REF] Suresh | Fatigue of Materials[END_REF]. Without pre-existent critical defects, as porosity or coarse precipitates, initiation is induced by emergent persistent slip bands (PSB) or dislocation cells, depending on materials composition and crystallography [START_REF] Suresh | Fatigue of Materials[END_REF]. The rearrangement of dislocations is directly linked to strain and stress state in the material. The aim of this study is to use a mechanical approach which could be correlated to the evolution of the microstructure leading to the crack initiation.

The cyclic behavior of high-strength steel is characterized by the shape and the evolution of the cyclic stress-strain hysteresis loops [START_REF] Cottrell | Dislocations and plastic flow in crystals[END_REF][START_REF] Kuhlmann-Wilsdorf | Dislocation Behavior in Fatigue[END_REF][START_REF] Polak | The hysteresis loop. 2. Analysis of the loop shape[END_REF][START_REF] Dickson | A comparison of two simple methods for measuring cyclic internal and effective stresses[END_REF][START_REF] Guillemer-Neel | Cyclic deformation behaviour and Bauschinger effect in ductile cast iron[END_REF][START_REF] Polák | Analysis of the hysteresis loop in stainless steels I. Austenitic and ferritic steels[END_REF][START_REF] Gaudin | Hardening rate under reverse loading in 316 L : Back stress and effective stress evolutions[END_REF][START_REF] Fournier | Analysis of the hysteresis loops of a martensitic steel[END_REF]. At room temperature, the cyclic plastic strain is fully controlled by the mobility and the arrangement of dislocations [START_REF] Chai | Mechanisms of cyclic softening and cyclic creep in low carbon steel[END_REF], [START_REF] Giordana | Microstructure evolution during cyclic tests on EUROFER 97 at room temperature. TEM observation and modelling[END_REF]. Following Cottrell's analysis [START_REF] Cottrell | Dislocations and plastic flow in crystals[END_REF], the resolved shear stress experienced by dislocations during cyclic straining split in two components: the internal (X) and the effective (Σ ef ) stress. The former is related to longrange interactions between dislocations and obstacles and to local strain incompatibilities. The latter is due to short-range interactions. The effective stress is partially affected by thermal activation. As such, it can be further decomposed into two additive components Σ* and Σμ which are respectively the thermally activated part and the athermal part of the effective stress. In order to evaluate these components of the uniaxial flow stress, methods based on relaxation tests [START_REF] Krempl | Relaxation behavior and modeling[END_REF], [START_REF] Trojanová | Internal stress and thermally activated dislocation motion in an AZ63 magnesium alloy[END_REF], strain rate or temperature change tests [START_REF] Smidt | An analysis of thermally activated flow in alpha iron based on T-tau* considerations[END_REF], [START_REF] Braillon | Plastic deformation of calcite single crystals deformed in compression parallel to [111[END_REF], successive discharges [START_REF] Polak | The hysteresis loop. 3. Stress-dip experiment[END_REF] and hysteresis loop analysis [START_REF] Kuhlmann-Wilsdorf | Dislocation Behavior in Fatigue[END_REF][START_REF] Polak | The hysteresis loop. 2. Analysis of the loop shape[END_REF][START_REF] Dickson | A comparison of two simple methods for measuring cyclic internal and effective stresses[END_REF] have been developed. Handfield and Dickson [START_REF] Dickson | A comparison of two simple methods for measuring cyclic internal and effective stresses[END_REF] analyzed the hysteresis loops based on Cottrell's framework to separate the effective and internal components of the stress. This method is applied on the highstrength steel S690QL (EN 10137-2) which is quenched-tempered martensitic steel. Low-cycle fatigue (LCF) tests are performed at room temperature and each cycle is analyzed. Results are discussed using additional techniques such as transmission electron microscopy (TEM), X-Ray diffraction and tensile tests at different temperatures [START_REF] Brown | Temperature dependence of the yield points in iron[END_REF][START_REF] Chomel | Influence of substitutional elements on flow stress in iron at low temperature[END_REF][START_REF] Hollang | Work hardening and flow stress of ultrapure molybdenum single crystals[END_REF].

II. Material and experimental procedure II.1. Material

The material of the study is a high strength steel S690QL (EN 10137-2). It exhibits a tempered martensitic microstructure consisting of laths of about 200 nm width. Laths are gathered in blocks and packets which are contained in prior austenite grain with a cluster size ranging from 10 to 20 µm. The steel chemical composition is given in table 1. Tempering consisted in two hours at 550 °C after austenitization at 920 °C and water quenching. No retained austenite was revealed by X-ray analysis. The mechanical properties are shown in table 2.

II.2. Low cycle fatigue tests

LCF tests controlled by plastic strain are carried out at a plastic strain rate dε p /dt=5.10 -4 s -1 and plastic strain amplitudes between  p /2 = +/-0.2 % and +/-1 %. They are conducted with a control waveform triangular and symmetrical (i.e.: constant plastic strain rate and load ratio equal to -1). Cylindrical specimens with a 10 mm gauge length and 8 mm diameter are used. Strain is controlled by an extensometer of 7 mm +/-1 mm gauge length. A cross-compensation is applied to the extensometer signal to cancel the elastic strain.

II.3. Hysteresis loop analysis

Each hysteresis cycle is analyzed using Handfield and Dickson's method (Fig. 1). Frontiers of the elastic domain (σ e max and σ e min ) are determined with a plastic strain offset of 5.10 -5 . This offset is chosen to match with the sensitivity of the extensometer and is the same for all plastic strain amplitudes. Increasing the offset leads to increase the estimated value of the athermal component of the effective stress and decrease the thermal part, but the estimated internal stress is not affected. The internal stress X, the thermal effective stress Σ* and the athermal effective stress Σ μ are calculated with equations summarized in table 3.

II.4. X-Ray diffraction

The dislocation density is investigated by X-Ray diffraction line profile analysis [START_REF] Gay | The estimation of dislocation densities in metals from X-ray data[END_REF]. As presented in figure 2, peak broadening is influenced by the dislocation density. The momentum method [START_REF] Borbély | An X-ray method for the determination of stored energies in texture components of deformed metals; application to cold worked ultra high purity iron[END_REF][START_REF] Borbély | Momentum method applied to evaluation of size and strain in ball-milled iron[END_REF][START_REF] Borbély | X-ray line profiles analysis of plastically deformed metals[END_REF] is applied to determine the dislocation density evolution during cyclic loading. The second and fourth restricted moments of the measured intensity distribution are linked to the dislocation density and the coherent domain size, as given by equations 1 and 2, respectively:

    2 0 2 2 2 2 2 2 / ln 4 1       q q K L q q M F F     Eq.1         2 2 2 4 2 2 1 4 2 2 2 4 / ln 4 3 / ln 2 3 4 3 1 q q q q q q q q q M F F                
Eq.2 with q=2(sin(-sin( 0 ))/ and =/2g 2 b 2 C.  and  0 are the diffraction and the Bragg angles.  is the wavelength of the illuminating X-Ray. C is the contrast factor evaluated by texture analysis [START_REF] Borbély | An X-ray method for the determination of stored energies in texture components of deformed metals; application to cold worked ultra high purity iron[END_REF]. <> is the average dislocation density. g is the magnitude of the diffraction vector. b is the magnitude of the Burgers vector.  F is the coherent domain size. In equation 2, the third and fourth terms are negligible in our case since size broadening is the dominant contribution [START_REF] Borbély | X-ray line profiles analysis of plastically deformed metals[END_REF]. The temperature-dependence of the macroscopic stress is studied with tensile tests at temperatures from 150 up to 420 K [START_REF] Smidt | An analysis of thermally activated flow in alpha iron based on T-tau* considerations[END_REF], [START_REF] Brown | Temperature dependence of the yield points in iron[END_REF][START_REF] Chomel | Influence of substitutional elements on flow stress in iron at low temperature[END_REF][START_REF] Hollang | Work hardening and flow stress of ultrapure molybdenum single crystals[END_REF]. Tests are performed at constant strain rate dε/dt=5.10 -4 s -1 . Two series of experiments are carried out on specimens with or without cyclic pre-hardening, which consists in cycling at constant plastic strain amplitude  p /2 = +/-0.5 % and constant plastic strain rate dε p /dt=5.10 -4 s -1 for 120 cycles.

III. Results

III.1. Cyclic stress evolution

An example LCF test at a plastic strain amplitude Δε p /2=0.5% is given in figure 3a. The evolution of the half stress amplitude with cycle number is presented in figure 3b. The cumulative plastic strain p, for a LCF tests, is defined by p=2×N×Δε p , with N the number of cycles and Δε p the plastic strain amplitude for each cycle. The stress amplitude is an increasing function of the applied strain amplitude. The evolution of the stress amplitude is qualitatively comparable across all investigated strain amplitudes: the steel exhibits a cyclic softening down to linear regime.

The effective stress is divided into a thermally activated component Σ* and an athermal component Σ μ . Their evolutions are presented in figure 4. The thermally activated part of the effective stress is greater when the applied strain amplitude is increased, but does not evolve with the number of cycles.

The thermally activated part of the stress is measured by tensile tests at different temperatures.

Values of the flow stress at 0.2% and 2% plastic strain for each temperature are reported in figure after cyclic prestraining (72 MPa at 0.2 % and 58 MPa at 2 %). At room temperature, the thermal part of the stress, σ*, is not affected by cyclic pre-hardening.

III.2. Dislocation density

The momentum method to estimate the dislocation density is used for two peaks for each sample: (110) and (211). To accurately estimate the average dislocation density, the contrast factor has to be determined using texture analysis [START_REF] Borbély | An X-ray method for the determination of stored energies in texture components of deformed metals; application to cold worked ultra high purity iron[END_REF]. . For this calculation, {110} <111> systems only are considered. We assume no gliding along {211} <111> systems as observed in pure iron [START_REF] Caillard | Kinetics of dislocations in pure Fe. Part I. In situ straining experiments at room temperature[END_REF], [START_REF] Caillard | Kinetics of dislocations in pure Fe. Part II. In situ straining experiments at low temperature[END_REF] and confirmed by atomistic simulations in bcc tungsten [START_REF] Srivastava | Dislocation motion in tungsten: Atomistic input to discrete dislocation simulations[END_REF]. {211} planes analyzed by X-Ray diffraction are ( 211), ( 121), (12-1) and (21-1) because they all have the same angle with [110], which is the smallest angle among all the {211} planes. The contrast factors of dislocations are calculated with iron contrast factors [START_REF] Borbély | An X-ray method for the determination of stored energies in texture components of deformed metals; application to cold worked ultra high purity iron[END_REF]. Results are summarized in table 4. Dislocation densities in samples after monotonic and cyclic straining are presented in figure 7.

These densities are the means of the results obtained from (110) and (211) diffraction peaks.

Data scattering is represented by errors bars. The initial dislocation density is 7.2+/-0.6×10 14 m -2 .

It is increases rapidly during tensile straining, reaching 2.0+/-0.1×10 15 m -2 at 6% and 2.1+/-0.1×10 15 m -2 at 10% of total deformation. During cyclic straining, the dislocation density initially increases slightly during the first few cycles; at p = 0.04, ρ 0.5% = 8.05+/-0.9×10 14 m -2 and ρ 0.2% = 7.6+/-0.8×10 14 m -2 for plastic strain amplitudes  p /2 of 0.5 % and 0.2 % respectively. Then, the dislocation density decreases with the cumulative plastic strain. The decrease is comparable for both plastic strain amplitudes investigated; at p=2.4, ρ = 5.7+/-0.7×10 14 m -2 .

III.3. Dislocation cells

TEM observations are performed on non-deformed and cyclically deformed samples (120 cycles at constant plastic strain amplitude  p /2 = +/-0.5 % and constant plastic strain rate dε p /dt = 5.10 -4 s -1 ). Dislocations cells are observed after cycling as shown in figure 8. Many precipitates are also detected with TEM observations. Some small coherent precipitates, about 50 nm, are present inside martensite laths, and larger non coherent precipitates with a diameter of about 150 nm are located on lath and grain boundaries.

Author postprint version

IV. Discussion

The cyclic softening is achieved by a decrease of the athermal effective stress and internal stress for all investigated strain amplitudes. Conversely, the thermal part of the effective stress remains constant during the plastic stain accumulation. These different contributions to the flow stress are due to the interactions of mobile dislocation with microstructural obstacles [START_REF] Friedel | Les Dislocations[END_REF]. The internal stress can be linked to interactions with long-range obstacles such as dislocation pile-ups, precipitates, dislocation walls, grain boundaries, and other local strain incompatibilities [START_REF] Ashby | The deformation of plastically non-homogeneous materials[END_REF][START_REF] Mughrabi | Dislocation wall and cell structures and long-range internal stresses in deformed metal crystals[END_REF][START_REF] Aubert | Constrained and unstable expansion of dislocation loops using an invariant formulation of the free energy[END_REF][START_REF] Viatkina | Modelling of the internal stress in dislocation cell structures[END_REF].

The athermal component of the effective stress results mainly from interactions with forest dislocations [START_REF] Rauch | The Relation Between Forest Dislocations and Stress in BCC Metals[END_REF] and precipitate strengthening [START_REF] Reppich | Particle strengthening[END_REF] (Orowan by-passing [START_REF] Queyreau | Orowan strengthening and forest hardening superposition examined by dislocation dynamics simulations[END_REF] or shearing mechanisms). Finally, the thermal part of the effective stress is caused by lattice friction [START_REF] Duesbery | The influence of core structure on dislocation mobility[END_REF][START_REF] Spitzig | Orientation dependence of the strain-rate sensitivity and thermally activated flow in iron single crystals[END_REF][START_REF] Spitzig | Analysis of thermally-activated flow in iron single crystals[END_REF][START_REF] Takeuchi | Motion of dislocations in BCC metals at low temperature[END_REF],

double-kink formation [START_REF] Seeger | Structure and diffusion of kinks in monatomic crystals[END_REF][START_REF] Couret | Dissociations and friction forces in metals and alloys[END_REF][START_REF] Edagawa | Motion of a screw dislocation in a twodimensional Peierls potential[END_REF], edge dipole formation, cross-slip [START_REF] Jackson | The role of cross-slip in the plastic deformation of crystals[END_REF], [START_REF] Püschl | Models for dislocation cross-slip in close-packed crystal structures: a critical review[END_REF] and solid solution interactions [START_REF] Haasen | Chapter 23 -Mechanical Properties of Solid Solutions[END_REF].

In the case of fatigue loading, the dislocation density decreases with plastic strain accumulation.

Cyclic strain induces a rearrangement of dislocations in cells. These cells are formed in metals with medium and high stacking fault energies in order to reduce the elastic energy stored in the material and to accommodate more plastic strain [START_REF] Kuhlmann-Wilsdorf | Theory of dislocation cell sizes in deformed metals[END_REF]. To develop such patterns, dislocation generation and annihilation processes have to operate. The cross-slip of screw dislocation is obviously a very important mechanism in the production of specific fatigue sub-structures [START_REF] Püschl | Models for dislocation cross-slip in close-packed crystal structures: a critical review[END_REF], [START_REF] Kratochvil | Dislocation pattern formation in metals[END_REF], [START_REF] Hähner | A theory of dislocation cell formation based on stochastic dislocation dynamics[END_REF]. Cross-slip allows screw dislocations of opposite sign gliding in neighboring parallel planes to meet and annihilate each other, leaving trailing edge dipole debris [START_REF] Jackson | The role of cross-slip in the plastic deformation of crystals[END_REF]. Their clustering results in the formation of cell walls. Consequently, cell formation by cyclic straining is accounts for both dislocation density decreases inside the cell and accumulation in cell walls, with possible recovery. It also reduces the size of coherent domain in crystals and so modifies the distribution of long range obstacles for gliding dislocations.

The internal stress increases with the plastic strain amplitude, which means that interactions are stronger at higher plastic stain level. Dislocation pile-ups are wiped out by cyclic straining, which decreases the internal stress. Recovery processes in cell walls also reduce this stress. The evolution of the cyclic softening with plastic strain is independent of the applied plastic strain amplitude within the investigated range, meaning that the controlling parameter is indeed the cumulative plastic strain provided to the material.

The decrease of the athermal effective stress can be related to the decrease of dislocation density inside cells. Forest interactions are reduced due to dislocation annihilation by cross-slip inside cells. The rate of decrease is identical at all investigated plastic strain amplitudes, meaning that generation and annihilation processes are mainly dependent of plastic strain accumulation. X-Ray diffraction results also show a comparable decrease for plastic strain amplitudes  p /2 of 0.5 % and 0.2 %. Finally, fatigue straining may lead to the dissolution by shearing of coherent precipitates inside martensite laths, which would also cause a decrease of the athermal effective stress.

Concerning the thermal part of the effective stress, all previously quoted mechanisms can be active. All of them are affected by the level of stress/strain. But, edge dipole formation and crossslip are linked to the forest dislocation density. So lattice friction, double-kink formation and solid solution interactions may be the main mechanisms. For double-kink formation, as shown in figure 6, room temperature is close to athermal regime where edge and screw dislocations have the same mobility, so where the line tension mechanism prevails on the double-kink one.

Conclusion

A detailed analysis of the evolution of the cyclic stress, dislocation density and dislocation patterns were carried out in the complex nano-scale microstructure of a high strength tempered Combined TEM observations and quantitative analysis of X-Ray diffraction peaks showed that cyclic softening is linked to microstructural modifications during cyclic straining. The decrease of the internal stress is due to cell formation and that of the athermal effective stress is caused by the reduction of dislocation density inside cells. Other mechanisms might operate, but the above two are the most consistent with TEM observations and X-Ray measurements performed in our material for the investigated cyclic strain amplitudes.

I

  . Introduction ........................................................................................................................................................... II. Material and experimental procedure ................................................................................................................ II.1. Material .......................................................................................................................................................... II.2. Low cycle fatigue tests ................................................................................................................................. II.3. Hysteresis loop analysis ............................................................................................................................... II.4. X-Ray diffraction .......................................................................................................................................... II.5. Additional characterization ......................................................................................................................... III. Results .................................................................................................................................................................. III.1. Cyclic stress evolution ................................................................................................................................ III.2. Dislocation density ................................................................................................................................... III.3. Dislocation cells ........................................................................................................................................ IV. Discussion .......................................................................................................................................................... Conclusion ................................................................................................................................................................

  Data are recorded using a Panalytical MRD diffractometer with Co K α radiation (1.790 Å) and optics equipped with a slit of 1/8°. II.5. Additional characterization Microstructural investigation by TEM on fatigue specimens is performed using a PHILIPS FEI CM 200 microscope operating at 200 kV. Thin samples with a diameter of 3 mm and a thickness of 100 µm are machined from fatigue specimens by saw-wire cutting. Final thickness (< 200 nm) is obtained by electropolishing in a solution of 10%-perchloric acid and ethanol at 15 V for about 40 s.

  X-Ray analyses are performed on a normaltransverse plane; the rolling direction is perpendicular to the surface. Pole figures are centrosymmetric with a maximum intensity at 0° and 60° for (110) planes, 45° for (200) planes and 30° for (211) planes. These results show that [110] lies along the rolling direction. Schmid factors calculation show that only 4 systems are activated: (011) [11-1], (101) [11-1], (01-1) [111] and (10-1) [111]

-

  Please cite using: Vucko, F., Bosch, C., & Delafosse, D. (2014). Experimental investigations of internal and effective stresses during fatigue loading of high-strength steel. Materials Science and Engineering: A, 597, 381-386. doi:10.1016/j.msea.2014.01.016 12

Author postprint version -

 version Please cite using: Vucko, F., Bosch, C., & Delafosse, D. (2014). Experimental investigations of internal and effective stresses during fatigue loading of high-strength steel. Materials Science and Engineering: A, 597, 381-386. doi:10.1016/j.msea.2014.01.016 14 martensitic steel. Internal and effective components of the stress were extracted from hysteresis cycles of low cycle fatigue tests at different strain amplitudes. Both the internal stress and the athermal part of the effective stress are dependent on the cumulative plastic strain, which is related to the mechanical energy provided to the material. The thermal part of the effective stress depends only on the applied strain amplitude.

Table of content

 of

Table 1 :

 1 Chemical composition of steel S690QL (weight %)

	Elements	C	Si	Mn	Mo	Nb	Ni	Ti	S
	wt.%	0.16 0.33 1.22 0.25 ≤0.10 0.11 ≤0.05 ≤0.001
	Elements	P	V	Zr	N	B	Cr	Cu	Fe
	wt.%	≤0.02 ≤0.1 ≤0.1 ≤0.015 ≤0.005 0.29 ≤0.1 Bal.

Table 2 :

 2 Mechanical properties of steel S690QL at room temperature

		YS (MPa) at εp = 0.2 %	UTS (MPa)	Elongation (%)
	Steel S690QL	726	940	35

Table 3 :

 3 Internal stress, thermal and athermal effective stress equations (symbols of defined in figure2)

Table 4 :

 4 Dislocations contrast factors of iron[START_REF] Gay | The estimation of dislocation densities in metals from X-ray data[END_REF]

	C	(110)	(211)	(121)	(12-1)	(21-1)
	(011) [11-1]	0.2996	0.1057	0.198	0.2946	0.2505
	(101) [11-1]	0.2996	0.198	0.1057	0.2505	0.2946
	(01-1) [111]	0.2996	0.2505	0.2946	0.198	0.1057
	(10-1) [111]	0.2996	0.2946	0.2505	0.1057	0.198
	C	0.2996		0.2122

Conversely, the evolution of the athermal component is identical at all investigated plastic strain amplitudes. It exhibits a strong softening for p < 2 and then, a slower quasi-linear softening.

The internal stress is plotted in figure 5 as a function of the cumulative plastic strain. It increases with the applied strain amplitude. The evolution is similar across all strain amplitudes and consists in a steep softening for a cumulative plastic strain p < 2 and followed by a quasi-linear evolution at higher accumulated plastic strains.

Author postprint version


Valentin Mena Morales

Pierre-Henri Horrein

Amer Baghdadi
email: amer.baghdadi@telecom-bretagne.euerik.hochapfel@adacsys.com

Erik Hochapfel

Sandrine Vaton

Energy-Efficient FPGA Implementation for Binomial Option Pricing Using OpenCL

Energy efficiency of financial computations is a performance criterion that can no longer be dismissed, and is as crucial as raw acceleration and accuracy of the solution. In order to reduce the energy consumption of financial accelerators, FPGAs offer a good compromise with low power consumption and high parallelism. However, designing and prototyping an application on an FPGA-based platform are typically very timeconsuming and requires significant skills in hardware design. This issue constitutes a major drawback with respect to softwarecentric acceleration platforms and approaches. A high-level approach has been chosen, using Altera's implementation of the OpenCL standard, to answer this issue. We present two FPGA implementations of the binomial option pricing model on American options. The results obtained on a Terasic DE4 -Stratix IV board form a solid basis to hold all the constraints necessary for a real world application. The best implementation can evaluate more than 2000 options/s with an average power of less than 20W.

I. INTRODUCTION

FPGAs (Field Programmable Gate Arrays) can be used as accelerators for financial computations, provided that the algorithm to be implemented can be parallelized to fit optimally on the FPGA's hardware resources. FPGAs provide benefits in terms of power consumption and computation time over a pure software solution, but usually come at a cost in programmability. As opposed to classic HDL-based design (High Description Language: VHDL, verilog, etc.), some approaches [START_REF] Cong | High-level synthesis for FPGAs: from prototyping to deployment[END_REF] attempt to reduce development time by giving access to a high-level framework. For instance, the OpenCL standard (Open Computing Language) supports FPGA targets, through Altera's implementation of an OpenCL compiler. Altera's OpenCL compiler has been used in this work so as to speed up a financial computation (pricing of American options, as detailed in Section III) within a specific set of constraints.

This work aims at providing an architecture that can price 2000 option values under a second while being powered by the user's workstation. These constraints define a use case where a trader can use our work to estimate the implied volatility curve of an option [START_REF] Hull | Options, Futures, & Other Derivatives, ser[END_REF], giving him information on the expected evolution of this financial product. When a volatility curve of an option with a specific set of parameters is known, a trader can replace the constant volatility used to model the evolution of this option with the computed volatility and reach more accurate levels of modelization. A second per volatility curve (2000 option values per volatility curve for accuracy considerations) is a duration short enough to fit within the user's timeframe when making a decision. So as to be certain that the accelerator can be integrated into any user's existing infrastructure, a design limit of 10W has been set for its power consumption. The market data and the reference prices from which the 2000 input values are generated are based on a binomial representation. This restricts our study to the pricing of American options by a binomial model [START_REF] Cox | Option pricing: A simplified approach[END_REF].

In Section II we present other works related to the subject. Section III describes the financial application as well as the OpenCL standard, and Sections IV and V detail respectively an architecture study of OpenCL implementations and their performance results.

II. RELATED WORK

The acceleration of financial algorithms has been the subject of many articles, but most works focused on the acceleration factor of the implemented solution, compared to a reference software. Still, the energy cost of acceleration is starting to be taken into account as a key performance criterion, along computing times and accuracy. Following this trend, de Schryver, et al. [START_REF] De Schryver | An energy efficient FPGA accelerator for monte carlo option pricing with the heston model[END_REF] have presented a benchmark to compare option pricing accelerators between each other, and not only between an accelerator and a reference software. They define an option pricing accelerator as:

• a problem, usually finding the price of a financial product, • a mathematical model used to predict this product's behavior, • a solution to price this product, meaning an algorithm and its implementation.

This benchmark includes energy consumption as a criterion of discrimination between solutions (J/option). They applied this methodology to a design space exploration for the pricing of barrier options in the Heston model which led to the selection of a Multi-Level Monte Carlo method as the best compromise between acceleration, accuracy and energy consumption.

The Monte Carlo method and its optimizations have been extensively studied due to its massive parallelism. Accelerating this method on parallel hardware such as GPU [START_REF] Atanassov | Parallel implementation of option pricing methods on multiple GPUs[END_REF], [START_REF] Murakowski | CUDA implementation of barrier option valuation with jump-diffusion process and brownian bridge[END_REF] or FPGA [START_REF] Sridharan | FPGA-Based reconfigurable computing for pricing multi-asset barrier options[END_REF], [START_REF] Tse | Reconfigurable control variate monte-carlo designs for pricing exotic options[END_REF] is quite efficient. However, the acceleration factors that can be achieved are counterbalanced by the slow convergence rate of this method. The Monte Carlo method is best suited to complex model evaluation or to problems with high dimensionality. Complex models are usually difficult to price with other methods, while high dimensionality problems benefits from the Monte Carlo's linear increase in complexity method with dimensionality. Most other pricing methods see their complexity increase exponentially with dimensionality (quadrature methods, finite differences methods, etc.).

IEEE978-3-9815370-2-4/DATE14/ c 2014 EDAA
The binomial option pricing model has seen less interest, as they are harder to efficiently implement on classic acceleration hardware, despite the possible gains in computing times. Still, the work of Jin, et al. [START_REF] Jin | Exploring reconfigurable architectures for binomial-tree pricing models[END_REF] can be mentioned, as well as [START_REF] Wynnyk | Pricing the american option using reconfigurable hardware[END_REF] (both on reconfigurable targets), and [START_REF] Pharr | GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation[END_REF] for an architecture based on a GPU, closer to the industry standards of CPU and GPU clusters. Although not explicited in those papers, one benefit of using FPGAs for acceleration is their low consumption, when compared with GPUs and CPUs. Indeed, FPGAs usually consume an order of magnitude less power than CPUs or GPUs (≈ 10W for FPGA and ≈ 100W for GPUs and CPUs). Those implementations price slightly higher than 10 3 American options/s with high precision for the fastest of them [START_REF] Wynnyk | Pricing the american option using reconfigurable hardware[END_REF], [START_REF] Pharr | GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation[END_REF]. They can achieve better acceleration factors compared to a software reference in specific cases, when restrictions on accuracy are either alleviated (fixed precision implementations) or strengthened (higher time discretization steps). Unfortunately, the above referenced works do not consider the energy consumption criterion.

Jin, et al. have also carried out a survey of different methods of model evaluations [START_REF] Jin | On comparing financial option price solvers on FPGA[END_REF]. They conclude that quadrature methods are the best compromise to price American options, while tree-based methods are optimal when time-to-solution is a key constraint. The results they described were obtained on floating-point and fixed precision.

III. CONTEXT

A. Option Pricing

The main aim of financial applications when used as decision aid tools is to provide the user with information on the expected evolution of financial products. Those applications can, for instance, provide an accurate estimation of a product value at a given time or the risk associated with an investment. Such applications either run on a server cluster to accelerate them, or on the user's personal computer when cost is a bigger constraint than computation time.

The algorithm targeted in this paper implements a binomial model to price American options. An option is a financial product that gives the right (but not the obligation) to buy (call option) or sell (put option) an asset before a given date. An option pricing model tries to estimate an option price when there exists no analytical solution to evaluate it. Many types of options exist, each corresponding to a slightly different version of this definition. For instance, European options give the right to buy (or sell) an asset at a predetermined date, whereas American options give the right to do so at any given time before its expiration date. The value of the latter thus depends on the asset price during the whole life of the option. This means that the optimal value of an American option is the maximum of all its possible values. The time dependancy introduced by this maximum renders it non trivial to compute (contrary to European options).

B. Binomial Model

The binomial model is a lattice-based method to price options, with a time discretization (cf. Figure 1). To simulate the evolution of the asset over time, the asset price can either increase or decrease by a fixed amount at each time step, with respective probabilities p and q = 1 -p. The tree is recombining: if an asset value increases once before decreasing once, it keeps the same value. This means that the number of possible values only increases by one at each step. If ∆t is , is computed as the maximum between its value if it were exercised right now and its potential value before expiry. In order to know both values at each node (i.e. at each tree coordinate (t, k)), the tree is computed backward, starting with the leaves, and ending with the option value S 0,0 at time t = 0. S 0,0 represents the option maximum value on the considered time frame. The values at the leaves (S T,k , for k ∈ 1, ..., N ) correspond to the pricing of European options and can be found analytically.

(2, 2) S 2,2 = u²S 0 (1, 2) S 1,2 =uS 0 (2, 1) S 2,1 = S 0 (2, 0) S 2,0 =u -2 S 0 T=2 Expiry date 1 t=0 Settlement date ∆t 1 2 0 1 2 Leaves Initialisation Backward Iteration (1, 1) S 1,1 =u -1 S 0 (0, 2) S 0,2 =S 0 V t,k = f(S t,k ) V t,k = f(S t,k ; V t+1,k ; V t+1,k-1 )
Each node is updated using the following recurrence formulas (for a call option) [START_REF] Hull | Options, Futures, & Other Derivatives, ser[END_REF]:

S t,k = dS t+1,k V t,k = max(S t,k -K; rpV t+1,k + rqV t+1,k-1 ) (1)
where d, K, r, p, q are option dependent parameters, where: σ∆t) , where σ is the volatility of the option,

• d = e (-
• K is the strike price (the price at which the option can be bought), • r is the risk free rate (assuming risk neutral valuation).

C. A High-Level Approach: OpenCL

OpenCL [START_REF] Group | The opencl specification[END_REF] is a framework for parallel programming on heterogeneous platforms. It is based on a runtime host library and C99 extensions for device programming, adapted to support vectorized data types, synchronization points, and other functionalities. OpenCL is a standard in parallel programming, which has been implemented on several hardware architectures by manufacturers (e.g.: GPUs, CPUs, FPGAs, etc.). An OpenCL program can be executed on any of those devices with only a handful of modifications, allowing portability. As shown on Figure 2, an OpenCL device is subdivided into compute units, which execute multiple copies (work-items) of a piece of code (kernel). However, performances can vary depending on the compatibility between the program and the architecture of the targeted device. The master of an OpenCL architecture (the host) handles the application's data-flow through queues of orders to the devices it is connected to. Data movement is thus explicitly specified by the programmer. This data management relies on a relaxed memory consistency model, with three memory levels: global, local and private. The work-items on a device are organized into work-groups that share a common memory region (local memory) and synchronization points. This memory level acts as a cache-coherent memory for the programmer, which ease any data partitioning problem that may arise: every workitem within a work-group can access any data stored in the address space of the local memory. The global memory can be accessed by any work-group and by the host. Access to global memory can be coalesced to reduce latency, provided that accessed pieces of data are adjacent. Nevertheless, accesses to global data is always slower than accesses to local data (up to an order of magnitude in bandwidth). Finally, each work-item has access to a single private memory region. Two OpenCL devices have been used as implementation targets: an FPGA board as the final target, and a GPU as an initial target. The use of a GPU board reduced development time through faster compilation and thus shorter debug and development iterations. It has also served as a reference to compare the results accuracy and computation times of the proposed acceleration solutions.

IV. ARCHITECTURE STUDY

A. Straightforward Implementation

Compared with a classic HDL design methodology, work scheduling on hardware resources is delegated to the device in OpenCL. The developper simply enqueues the necessary number of work-items in the host program and lets the workload get dispatched on the device's resources as best as possible, with no need to program a layer of control over its operative core. Enqueueing far more work than what can be processed at once on the device can then help it optimize its use of hardware resources, and is actually necessary to reach an acceleration factor that balances the communication overhead between the host and the device.

For this reason, the first approach implements a dataflow paradigm, supported by kernels independent from each other and forming a highly scalable application. A single tree node of the binomial tree (Figure 1) is computed by a kernel, which is enqueued enough times so that a full tree datapath is computed at once. This amounts to N (N + 1)/2 work-items, with N the total number of discretization steps. Each stage of the tree (i.e., each time-step) corresponds to a different pipelined option being computed. This efficiently pipelines N +1 options on the FPGA device, one option entering the tree and N options at each step within the tree. An option is computed by calling this network of kernels N times, until it exits the pipeline. Those iterations are controlled by the host program, which schedules the memory transfers between the host and the device and the sequential execution of the kernel batches. Four instructions are executed by the host during each batch: initializing the data necessary to fill the first addresses of the input buffer, writing this data to the device global memory, enqueueing the kernels and reading a result from the global memory. For instance, let us consider the pricing of 2000 options with 1024 steps. The tree for one option will roughly contain 5.10 5 tree nodes. The whole tree must be processed for each option, which means that approximately 1.10 9 tree nodes (and thus kernels) must be processed. The results of each batch is stored in global buffers, containing all the internal data. The use of global buffers enables data to be stored between two batches, and enables this data to be accessed by any kernel. To avoid any memory conflict, ping-pong buffering is used (one buffer is read while the other one is written). Those buffers are switched between each batch to let data flow through the network. Data updated during each batch are stored in these buffers (i.e. S t,k , V t,k , and indexes). Option-dependent data, yet that is constant during an option pricing, is stored in another global buffer. Figure 3 describes this data-flow, applied to the tree shown in Subsection III-B. The tree is displayed flattened here, with the last tree node on the left side (at (t, k) = (0, 0) and the first encountered nodes on the right side (from (t, k) = (2, 0) to (t, k) = (2, 2). Option 0 is being computed by the work-item (0, 0) and will be read right before the next batch of kernels is enqueued, while three other options are in the pipeline, options 1 and 2 being processed (respectively) by the work-items (1, 0) and (1, 1) and (2, 0), (2, 1) and (2, 2) while option 3 is being written in the buffer by the host. Two buffer addresses are read by each work-item to compute a tree node value (following recurrence formulas defined in Equation 1). The id indicated in each work-item stands for their respective global index, starting at 0 for the first encountered work-item, at the (2, 2) position in the tree.

Work-item indexing is a key point in OpenCL programming. Each work-item has several indexes associated to it:

• a global index, unique to each work-item and ranging from 0 to the number of enqueued kernels (N (N + 1)/2 -1 here), • the index of its work-group, • and its individual (local) index inside this work-group.

In this implementation, the address of a work-item input is a function of its time discretization step t within the binomial tree. However, work-items in a work-group do not necessarily correspond to tree nodes from the same time discretization step, as work-group size is identical for each work-group. Work-items can only be identified by their global index, and their input addresses are then (id + N -t). Computing time steps within the work-item would be too costly in terms of computing resources. They are stored in a constant buffer, allowing work-items to determine their Read addresses at the beginnning of each batch (Id + N -t). Write addresses are less complex and depend only of the global index of the workitems (Id + N + 1).

B. Optimized Approach

The above described dataflow approach is scalable and easily implemented. However, it suffers from several drawbacks. First, the host iterates through each batch of kernels to continuously fill the pipeline, and in doing so results in an overhead in computation time. Memory operations and work-items executions are overlapped with one another and synchronized by the host, but they still incur a cost in computation time. Besides, the structure of the work-items is not kept between batches: private memories are emptied and local memories are unused, which results in new copies of previously processed data from the global memory to the work-items at the beginning of each batch. A way to solve these issues lies into a reordering of work-items into workgroups, where this division of work-items carries information meaningful for the computation of a binomial tree. A taskbased parallelism fits this work division, with each workgroup assigned to an option pricing (in other words, a full binomial tree). To reduce the amount of data copied during a computation, a work-item can be asssigned to the computation of a row in a tree, where a row can be defined as every tree node (t, k) with k constant. Following the terminology previously used in this work, a work-item would be assigned to the computation of the tree nodes (t, k), in a loop from t = T , down to t = N -(k + 1), at which point any following computation would be useless (i.e. outside of the tree). T workitems are then necessary at the beginning of the computation to initialize the leaves, and one less work-item is supposed to be computed between each time step. With such a repartition, options parameters, as well as S t,k , can be kept in private memory with S t,k = dS t-1,k updated by the work-item (t, k) at the beginning of each iteration. All shared data between work-items (i.e. V t,k for k ∈ {0...N }) are stored in local memory, which is possible as they are all in the same workgroup. As local memory is scarcer than global memory, no ping pong buffers are used; they are replaced by a single local buffer, associated with local synchronization points (barriers) and temporary copies to avoid memory conflicts (cf. Figure 4). From the host point of view, three commands must be executed to run this computation:

1) copying all option parameters in global memory, 2) enqueueing enough kernels to process all the data,

(t, 2) Id=2 (t, 1) Id=1 (t, 0) Id=0 S t, 2 S t, 1 S t, 0 Local Memory Private Memory V t, 0 V t, 1 V t, 1 V t, 2 V t, 2 V t, 3 V t, 3 V t, 2 V t, 1 V t, 0 V t, 3

Global Memory

Synchronisation barrier

Work-items execution

Work-items (t, k) Local Id

Copy Compute Store to local memory Figure 4. Data-flow during the computation of a binomial tree (Figure 1) with an optimized kernel 3) and read back the final results from global memory.

Option-dependent data is transfered once in global memory during the initialization step (1), and is then copied in private or local memory during the computation of the tree leaves (not displayed on Figure 4). Similarly, the results are read from global memory (3) only when the full workload has been processed, i.e. when all options have been computed. Compared with the straightforward implementation, host-device interaction is reduced to a minimum. The main restrictions on this implementation are linked to OpenCL constraints on the use of work-groups. The work-group size is a constant defined when enqueueing a kernel on a device, and cannot be modified on the fly. When a complete tree row has been processed, the corresponding work-item is either left idle or its results are ignored; hardware resources are unlikely to be reused. Besides, even if the kernel is more complex, only N * N op work-items have to be enqueued to compute N op options: more options may have to be priced to reach device saturation, which is a requirement in order to reach maximum raw performance.

V. RESULTS

In order to validate the approach, both proposed architectures have been implemented. In this section, the results of these implementations are presented.

A. Test Environment

Three target technologies were considered: a CPU on which the reference software ran, a GPU for development and comparison purposes, and an FPGA. The CPU is a quadcore Intel Xeon X5450 running at 3.0 GHz, the reference software being written in C. A single core of the Xeon was used during tests. The operating system running on the CPU is a Linux kernel 3.2 with 64 bits support. The targeted GPU is an NVIDIA GeForce GTX660 TI with 5 compute units. The board's global memory consists of a 2 GB GDDR5 memory with 144 GB/s of bandwidth and an access from the host through a PCIe 3.0 connection with x16 lanes (theorical throughput of 985 MB/s per lane) [START_REF]GeForce GTX 660 | Specifications | GeForce[END_REF]. Local memory on the GPU is made of on-chip L1 caches of 48 kB per compute unit.

The FPGA board is a Terasic DE4 based on a Stratix IV 4SGX530. Global memory is stored in two DDR2 memory banks, for a maximum theorical bandwidth of 12.75 GB/s to and from the FPGA (at a 400 MHz clock rate), and is accessible from the host through a PCIe gen2 4x connection. The PCIe connection has a maximum bandwidth of 500 MB/s per lane, meaning the DE4 board's maximum bandwidth is 2 GB/s. The local memory is implemented through an interconnect structure that gives access to on-chip RAM blocks as simple dual port RAMs, running at 600 MHz. Specifically, M9K RAM blocks are used (RAM blocks of 256x36 bits). Private memory is implemented as flip-flops within the data flow and thus runs at the kernel's frequency. Each kernel implemented on the FPGA board was compiled with Quartus II 64 bits.

B. Hardware Resources Management and Utilization

All performance results were obtained according to the use case detailed in the Introduction (Section I), with a goal of less than 2000 options computed per second, and an available power of approximately 10W. The need for accuracy is met by representing all data in double precision and by choosing a discretization step of T = 1024. This provides a good compromise between speed, precision and hardware restrictions (in terms of memory resources). Further gain in efficiency could be achieved by manual fine tuning (i.e. custom data types), as seen in classic FPGA designs. We chose not to do so as it would not yield significant enough benefits compared with the necessary development time and would defeat the purpose of using the OpenCL standard.

Both kernels described in Section IV are detailed below. Table I shows compilation results for both kernels presented in Section IV, when implemented on the DE4 board. Those results were given by the Quartus II Fitter Summary as configured by default when running Altera's OpenCL Compiler, and Quartus Power Estimation tool (quartus_pow) to estimate the kernel's power consumption. In table I, the memory bits row covers M9K RAM blocks as well as M144K blocks (RAM block of 2048x72 bits). All results are given in a base 2 definition (i.e., 1K = 1024 = 2 10 ). Those kernels were parallelized using several options of Altera's OpenCL Compiler. First, compiler directives can be used to either replicate entire hardware pipelines or to vectorize the kernel execution. When replicating the pipeline, computations can be done independently from one another, while vectorization corresponds to an SIMD work division (Single Instruction, Multiple Data). From empiric observations, vectorization is usually a less resource-consuming optimization than replication. It also eases memory coalescing optimization. However, it is more constraining: vectorization can only be done by powers of two, and be a divider of the total workgroup size. Besides, it is also possible to unroll any loop included in the kernel through #pragma directives. Loop unrolling uses less memory than a full replication, while giving another way to increase throughput and optimize resource consumption. Loop unrolling, replication and vectorization are 3 parameters that help reach the best compromise between resource utilization, latency and throughput. In our case, Kernel IV.A has been vectorized twice and replicated 3 times to use the maximum possible resources on the FPGA. Kernel IV.B contains an internal loop, which has been unrolled twice, coupled with a 4 times vectorization of the kernel. Both options of parallelization were chosen after several compilation iterations to find the best resource consumption rate.

It is interesting to note that, when optimized, both kernels use most of the M9K Block RAMs available, even though those blocks are used differently in the two kernels. Kernel IV.B implements its local memory as M9K blocks, while kernel IV.A uses those to coalesce its memory accesses to the global memory and store its inputs and outputs in shallow FIFOs. The kernels' power consumptions (15 and 17W) are upper bounds of the actual power consumption, and are resp. 50 and 70 % higher than the budget limit of 10W. They are an order of magnitude lower than the power consumption of the Xeon and the GTX660, with a respective Thermal Dissipation Power of 120 and 140W (see [START_REF]GeForce GTX 660 | Specifications | GeForce[END_REF], [START_REF]ARK | Intel R Xeon R Processor X5450 (12M Cache, 3.00GHz, 1333 MHz FSB)[END_REF], resp.). It is worth mentioning that the power consumption results of the FPGA designs do not encompass the DDR2 power consumption, nor any other part of the board but the FPGA. Still, the FPGA chip is responsible for most of the power consumption on the board, and those results represent a good approximation of the total power consumption of the DE4 board.

C. Performance Comparison

Table II illustrates the performances for each kernel on GPU and FPGA, along with software reference results, and published results for comparison [START_REF] Jin | Exploring reconfigurable architectures for binomial-tree pricing models[END_REF], [START_REF] Wynnyk | Pricing the american option using reconfigurable hardware[END_REF]. All the presented results were sampled after device saturation (best use case possible). After device saturation, computation time is a linear function of the number of computed options. This saturation typically happens at 10 5 priced options, which represents 5 plotted volatility curve (2000 options per volatility curve), which seems to be a realistic scenario. Only the kernel IV.B implemented on the GTX660 has a saturation at a higher number of options (10 6 options in both double and single precision). Higher throughput could be reached by increasing the implementation latency, but it would effectively rise the device saturation rate and reduce the accelerator's efficiency at lower workloads. As we consider an accelerator used by a single trader and not a shared resource (e.g., a server component), latency at low workload is an issue and must be minimized. The first implemented kernel presents extremely poor computing times, in both GPU and FPGA versions. This is due to memory copy from global memory to the host: one of the two ping pong buffers is fully read between each batch (approximately 19 MB for N = 1024), effectively stalling the kernel to avoid overwriting the results. A modified version of this kernel on GPU, with a reduced number of read operations between host and device, has an acceleration factor 14 times better than the initial kernel version on the same hardware (840 options/s vs 58.4 options/s). Modifications of this new version of the kernel to run on the DE4 board are ongoing, but the same order of magnitude of acceleration can be expected.

The kernel IV.B shows more promising results. More than 2000 options can be computed in less than a second (5150 options/s). Considering energy efficiency, the FPGA implementation is more than 5 times more energy efficient than the software reference. Unfortunately, this kernel does not reach the accuracy levels required for this application, with a RMSE (Root Mean Square Error) of 10 -3 only. The same kernel implemented on GPU has no accuracy issues. The source of this inacurracy has been isolated and is due to the use of the Power operator. This operator shows an RMSE of 10 -3 , compared with a software reference. The Power operator is not used within the kernel IV.A as the tree leaves are computed by the host and then tranfered to the device, contrary to kernel IV.B where the tree leaves are initialized in the device (a workitem for each tree leaf).

The performance gap in computation time between FPGA and GPU kernels comes from the high number of streaming multiprocessors that are present on this GPU. The GTX660 boasts a total of 960 stream processors (CUDA cores), with 1 double precision Arithmetic Logic Unit (ALU) per 8 stream processors (120 DP-ALUs) and running at 980 MHz. This outranks the processing capabilities of the FPGA board, but also means that the GPU board needs a more important workload to reach optimal performances (ten times as many). Besides, this increase in latency does not lead to much gain in acceleration factor, as the number of options/s computed by the GTX660 and the FPGA version are within a factor 5 of each other. Both computation times fall between expected results. This is illustrated by the number of options that can be computed with a single joule: the implementation on the DE4 board is 2 times more energy-efficient than the GPU implementation. Provided that the 13.0 SP1 of Altera's OpenCL compiler generates an accurate Power operator, the kernel IV.B on the DE4 board answers most of the constraints of our problem: pricing American options with high accuracy, at 2000 options/s or higher, and with minimal energy consumption. In case this issue is not solved with version 13.0 SP1, the values at the leaves will have to be computed on the host and sent to global memory, to be then copied in local memory, to the detriment of speed. The energy consumption still remains an issue, as the best current solution still needs more power than what is available. Workarounds exist, however. The best kernel implemented shows faster computation times than necessary; either clock frequency or paralellism levels can be lowered to reduce energy consumption. Besides, a less power consuming FPGA board can be selected that would better fit our goal. Finally, the DDR memory size used to implement global memory can be drastically reduced with no other impact on general performances but energy savings, as kernel IV.B use at best less than 100 KB of global memory during computation.

VI. CONCLUSION & FUTURE WORK

This paper presents two implementations of a binomial option pricing model applied to American options. The hardware target is a system comprising a CPU as host station, as well as an FPGA board to accelerate computations with minimal power consumption. The best OpenCL kernel is close to the performance levels desired, with more than 2000 options priced per second. The power that is used to achieve this computation time, 7W more than available, can be lowered to acceptable levels with a more appropriate target and by reducing the kernel frequency. Future work will focus on other hardware architectures supporting the OpenCL standard [START_REF] Flanagan | Accelerate multicore application development with keystone software[END_REF], [START_REF]Software Development Kit OpenCL TM on ARM Linux[END_REF], so as to compare their performances to the FPGA device and study the portability of the OpenCL kernel.

Figure 2 .

 2 Figure 2. OpenCL platform

Figure 3 .

 3 Figure 3. Straightforward implementation of the binomial tree illustrated in Figure 1

Table II .

 II

						PERFORMANCES
		Kernel IV.A		Kernel IV.B		Reference Software	[9]	[10]
	Platform	FPGA	GPU	FPGA	GPU	GPU	Single Core Xeon X5450	Virtex 4 xc4vsx55	Stratix III EP3SE260
	Precision	Double	Double	Double	Single	Double	Single	Double	Double	Double
	options/s	25	53	2400	47000	8900	116	222	385	1152
	RMSE	~10 -3	0	~10 -3	0	0	~10 -3	0	0	0
	options/J	1.7	0.4	140	340	64	1	1.85	N/A	N/A
	Tree nodes/s	13 M	30 M	1.3 G	25 G	4.7 G	61 M	117 M	202 M	576 M