Cours 3 | Approche de conception haut-niveau pour l’accélération matérielle de calcul haute performance en finance

Titre: Approche de conception haut-niveau pour l’accélération matérielle de calcul haute performance en finance

Auteurs: Valentin Mena Morales

Ecole/Université: Université Bretagne Loire

Résumé: Les applications de calcul haute-performance (HPC) nécessitent des capacités de calcul conséquentes, qui sont généralement atteintes a l’aide de fermes de serveurs au détriment de la consommation énergétique d’une telle solution. L’accélération d’applications sur des plateformes hétérogènes, comme par exemple des FPGA ou des GPU, permet de réduire la consommation énergétique et correspond donc a un compromis architectural plus séduisant. Elle s’accompagne cependant d’un changement de paradigme de programmation et les plateformes hétérogènes sont plus complexes à prendre en main pour des experts logiciels. C’est particulièrement le cas des développeurs de produits financiers en finance quantitative. De plus, les applications financières évoluent continuellement pour s’adapter aux demandes législatives et concurrentielles du domaine, ce qui renforce les contraintes de programmabilite de solutions d’accelerations. Dans ce contexte, l’utilisation de flots haut-niveaux tels que la synthèse haut-niveau (HLS) pour programmer des accélérateurs FG n’est pas suffisante. Une approche specifique au domaine peut fournir une reponse a la demande en performance, sans que la programmabilite d’applications accélérées ne soit compromise.

Nous proposons dans cette thèse une approche de conception haut-niveau reposant sur le standard de programmation hétérogène OpenCL. Cette approche repose notamment sur la nouvelle implémentation d’OpenCL pour FPGA introduite récemment par Altera. Quatre contributions principales sont apportées : (1) une étude initiale d’intégration de cœurs de calculs matériels a une librairie logicielle de calcul financier (QuantLib), (2) une exploration d’architectures et de leur performances respectives, ainsi que la conception d’une architecture dédiée pour l’évaluation d’option américaine et l’évaluation de volatilité implicite a partir d’un flot haut-niveau de conception, (3) la caractérisation détaillée d’une plateforme Altera OpenCL, des operateurs élémentaires, des surcouches de contrôle et des liens de communication qui la compose, (4) une proposition d’un flot de compilation spécifique au domaine financier, reposant sur cette dernière caractérisation, ainsi que sur une description des applications financières considérées, a savoir l’évaluation d’options.

Extrait du sommaire:

Remerciements i
Résumé iii
Abstract iv
Table des figures ix
Liste des tableaux xi
Introduction 1
1 Applications en finance et plateformes de calcul 7
1.1 Calcul d’options 8
1.1.1 Options financières 8
1.1.2 Modèles d’évaluation 9
1.1.2.1 Modèle de Black et Scholes 9
1.1.2.2 Modèles à volatilité stochastique 10
1.1.2.3 Modèles d’actifs avec sauts 12
1.2 Plateformes de calcul 13
1.2.1 GPP 13
1.2.2 GPU 14
1.2.3 FPGA 16
1.2.4 Intégration des composants de calcul 19
1.2.4.1 Limites des solutions homogènes 19
1.2.4.2 solutions hétérogènes et communication inter-composants 19
1.2.4.3 Standard de Programmation – OpenCL 20
1.3 Méthodes d’implémentations des modèles d’évaluation 21
1.3.1 Discrétisation des modèles 22
1.3.2 Méthode de Monte Carlo 22
1.3.3 Arbres binomiaux et trinomiaux 24
1.3.4 Méthode des différences finies 25
1.3.5 Calcul numérique d’intégrales (“Quadrature method”) 28
1.3.6 Conclusion sur les méthodes d’implémentations 29
1.4 Un besoin en accélération de calcul dans le domaine du calcul financier 29
1.5 Conclusion 31
2 Intégration de noyaux matériels dans la librairie financière QuantLib 33
2.1 Librairie QuantLib – la finance quantitative en Open Source 34
2.2 Couche d’abstraction pour l’intégration logicielle d’accélérateurs matériels 36
2.2.1 Approche d’intégration à grain fin 36
2.2.2 Choix d’implémentation 37
2.2.3 Implémentation 38
2.3 Application à QuantLib et cas d’étude 39
2.3.1 Utilisation de l’API dans le flot QuantLib 40
2.3.2 Application sur le framework QuantLib de calcul d’arbres 41
2.4 Conclusion 42
3 Approche spécialisée d’implémentation d’un modèle financier basé sur le flot OpenCL pour FPGA 45
3.1 Volatilité implicite et méthode de calcul d’options américaines 46
3.1.1 Modélisation d’une option américaine 46
3.1.2 Volatilité implicite 47
3.2 État de l’art 49
3.2.1 Choix de méthode d’implémentation et critères de performance 49
3.2.2 Méthode de Monte Carlo 50
3.2.3 Calcul intégral 52
3.2.4 Méthode des différences finies 53
3.2.5 Méthodes binomiale et trinomiale 54
3.3 Implémentation du calcul d’options américaines 55
3.3.1 Une première architecture en flot de données 55
3.3.1.1 Principe de l’architecture 55
3.3.1.2 Implémentation 56
3.3.1.3 Limites de cette architecture 58
3.3.2 Une seconde architecture : optimisation des accès mémoire 58
3.4 Implémentation du calcul de volatilité implicite 59
3.5 Étude de performance 62
3.5.1 Méthodologie d’expérimentation 62
3.5.2 Résultats pour l’évaluation d’options américaines 63
3.5.2.1 Critères de performance 63
3.5.2.2 Optimisation de l’utilisation des ressources matérielles 63
3.5.2.3 Performances des noyaux 64
3.5.3 Performance de l’implémentation du calcul de volatilité implicite 67
3.6 Conclusion 70
4 Chaîne de compilation spécialisée pour le calcul d’options 71
4.1 Contexte : chaîne de compilation classique et OpenCL 72
4.1.1 Compilation : de la représentation humaine à la représentation machine 72
4.1.2 Synthèse de haut niveau et représentation interne d’un programme 72
4.1.3 Utilisation du flot AOC pour la réalisation d’un DSL 75
4.2 Caractérisation d’une plateforme matérielle et du flot OpenCL d’Altera 76
4.2.1 Méthodologie d’analyse 76
4.2.2 Partie de contrôle générique définie par AOC 78
4.2.3 Caractérisation de l’utilisation des ressources par les mémoires et les opérateurs élémentaires 79
4.2.3.1 Implémentation de la mémoire 80
4.2.3.2 Implémentation des opérateurs 80
4.2.4 Caractérisation du temps d’accès et du débit 82
4.2.5 Conclusion : caractérisation d’une configuration 83
4.3 État de l’art : langages dédiés à un domaine d’application (DSL) 84
4.3.1 Scala et les frameworks de génération de DSL 84
4.3.1.1 Le framework Lightweight Modular Staging (LMS) 85
4.3.1.2 Delite 86
4.3.2 Utilisation de DSL pour le traitement d’image en HPC 89
4.3.2.1 Halide 89
4.3.2.2 HIPAcc 90
4.3.3 Forward Financial Framework 91
4.3.4 Conclusion sur l’état de l’art 92
4.4 Flot de développement OpenCL pour FPGA dédié à la finance 93
4.4.1 Introduction 93
4.4.2 Représentation du domaine d’application 94
4.4.3 Première étape : analyse du code 96
4.4.4 Deuxième étape : transformation du code 97
4.4.5 Implémentation du flot 99
4.5 Conclusion 100
Conclusion et perspectives 101
Bibliographie 105
Liste des publications 111

Cours accéleration matérielle (3)

Télécharger le fichier PDF: Approche de conception haut-niveau pour l’accélération matérielle de calcul haute performance en finance