{"id":598,"date":"2026-10-09T12:00:50","date_gmt":"2026-10-09T10:00:50","guid":{"rendered":"https:\/\/www.ranksignal.fr\/blog\/?p=598"},"modified":"2026-10-14T17:31:41","modified_gmt":"2026-10-14T15:31:41","slug":"qu-est-ce-qu-un-rapport-ops-octet-du-materiel","status":"publish","type":"post","link":"https:\/\/www.ranksignal.fr\/blog\/inference\/qu-est-ce-qu-un-rapport-ops-octet-du-materiel\/","title":{"rendered":"Rapport ops:octet d&rsquo;un GPU : ce qui le bride, calcul ou m\u00e9moire"},"content":{"rendered":"<p>Tu as sous les yeux deux fiches techniques. Le H100 et le H200 affichent exactement la m\u00eame puissance de calcul, mais le H200 d\u00e9place ses donn\u00e9es bien plus vite : 4,8 To\/s contre 3,35. Une simple division suffit \u00e0 dire ce que cet \u00e9cart change : le rapport ops:octet. Voici ce qu&rsquo;il est, comment le lire et dans quels pi\u00e8ges on tombe en le comparant.<\/p>\n<p><strong>Sommaire<\/strong><\/p>\n<ul>\n<li><a href=\"#l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/a><\/li>\n<li><a href=\"#deux-lignes-de-fiche-technique-une-division\">Deux lignes de fiche technique, une division<\/a><\/li>\n<li><a href=\"#que-veut-dire-295\">Que veut dire \u00ab 295 \u00bb ?<\/a><\/li>\n<li><a href=\"#ne-le-confonds-pas-avec-l-intensite-arithmetique\">Ne le confonds pas avec l&rsquo;intensit\u00e9 arithm\u00e9tique<\/a><\/li>\n<li><a href=\"#h100-h200-b200-le-meme-rapport\">H100, H200, B200 : le m\u00eame rapport ?<\/a><\/li>\n<li><a href=\"#trois-pieges-en-lisant-une-fiche-technique\">Trois pi\u00e8ges en lisant une fiche technique<\/a><\/li>\n<li><a href=\"#choisir-un-gpu-selon-son-goulot\">Choisir un GPU selon son goulot<\/a><\/li>\n<\/ul>\n<h2 id=\"l-essentiel-en-30-secondes\">L&rsquo;essentiel en 30 secondes<\/h2>\n<ul>\n<li>Le rapport ops:octet est la <strong>puissance de calcul divis\u00e9e par la bande passante<\/strong> d&rsquo;un GPU.<\/li>\n<li>Il s&rsquo;exprime en op\u00e9rations par octet et donne le <strong>point d&rsquo;\u00e9quilibre du mat\u00e9riel<\/strong> : 295 pour un H100 en FP16.<\/li>\n<li>Il ne d\u00e9crit pas un algorithme : c&rsquo;est le <strong>seuil \u00e0 comparer \u00e0 l&rsquo;intensit\u00e9 arithm\u00e9tique<\/strong> pour savoir si l&rsquo;on attend le calcul ou la m\u00e9moire.<\/li>\n<li>Il <strong>d\u00e9pend de la pr\u00e9cision<\/strong> et du type de FLOPS lus sur la fiche : compare toujours \u00e0 pr\u00e9cision identique, en mode dense.<\/li>\n<li>Il aide \u00e0 <strong>choisir le GPU selon son goulot<\/strong> : plus de FLOPS pour le calcul, plus de bande passante pour la m\u00e9moire.<\/li>\n<\/ul>\n<h2 id=\"deux-lignes-de-fiche-technique-une-division\">Deux lignes de fiche technique, une division<\/h2>\n<p>Un GPU poss\u00e8de une vitesse de calcul, en op\u00e9rations par seconde, et une bande passante m\u00e9moire, en octets d\u00e9plac\u00e9s par seconde. En divisant la premi\u00e8re par la seconde, les secondes s&rsquo;annulent : il reste <strong>des op\u00e9rations par octet<\/strong>. C&rsquo;est exactement l&rsquo;unit\u00e9 du rapport ops:octet.<\/p>\n<p>Fais le calcul sur un H100 en FP16 : 989 t\u00e9raFLOPS de calcul dense, face \u00e0 3,35 To\/s de bande passante. 989 divis\u00e9 par 3,35 donne environ 295.<\/p>\n<p>Le num\u00e9rateur se lit sur la ligne \u00ab Tensor Cores \u00bb de la fiche, puisque c&rsquo;est la puissance de ces unit\u00e9s qui compte pour l&rsquo;inf\u00e9rence. Il existe deux versions du chiffre, dense et parcimonieuse, et il faut <strong>prendre le FLOPS dense<\/strong>, qui est la valeur par d\u00e9faut de l&rsquo;inf\u00e9rence.<\/p>\n<p>Le d\u00e9nominateur, lui, mesure le d\u00e9bit maximal entre les c\u0153urs et la m\u00e9moire embarqu\u00e9e du GPU (la VRAM), via le bus m\u00e9moire. Il fixe la vitesse \u00e0 laquelle la VRAM alimente toute la hi\u00e9rarchie de caches.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef47126ef7&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef47126ef7\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1152\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_hierarchie_gpu-scaled.png\" alt=\"Hi\u00e9rarchie d'un GPU : la VRAM en haut, le cache L2 partag\u00e9 au milieu, puis les multiprocesseurs de flux avec leur cache L1 et leurs Tensor Cores\" class=\"wp-image-242\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_hierarchie_gpu-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_hierarchie_gpu-300x135.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_hierarchie_gpu-1024x461.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_hierarchie_gpu-768x346.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_hierarchie_gpu-1536x691.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch05_hierarchie_gpu-2048x922.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Le d\u00e9nominateur de ta division, c&rsquo;est le flux qui descend depuis la VRAM, tout en haut du sch\u00e9ma, vers les multiprocesseurs en bas, l\u00e0 o\u00f9 se trouvent les Tensor Cores qui fournissent le num\u00e9rateur.<\/figcaption><\/figure>\n\n\n<h2 id=\"que-veut-dire-295\">Que veut dire \u00ab 295 \u00bb ?<\/h2>\n<p>Imagine une cuisine de restaurant. Le plan de travail, c&rsquo;est le calcul ; les livraisons depuis la r\u00e9serve, c&rsquo;est la bande passante. Le rapport ops:octet dit <strong>combien de gestes les cuisiniers peuvent faire<\/strong> pour chaque kilo d&rsquo;ingr\u00e9dients livr\u00e9.<\/p>\n<blockquote>\n<p><strong>\ud83d\udca1 Intuition<\/strong> Si chaque kilo livr\u00e9 ne demande que quelques gestes, les cuisiniers attendent la livraison : la r\u00e9serve est le goulot. Si chaque kilo demande \u00e9norm\u00e9ment de gestes, la livraison dort pendant que les cuisiniers s&rsquo;\u00e9puisent : c&rsquo;est le plan de travail qui bride. Le rapport ops:octet est le nombre de gestes par kilo o\u00f9 les deux tiennent exactement le m\u00eame rythme.<\/p>\n<\/blockquote>\n<p>Pour un H100 en FP16, ce nombre vaut 295. Pour que l&rsquo;inf\u00e9rence soit parfaitement \u00e9quilibr\u00e9e, le syst\u00e8me devrait donc effectuer <strong>295 op\u00e9rations par octet lu<\/strong> en m\u00e9moire.<\/p>\n<p>Ce n&rsquo;est donc pas une note de qualit\u00e9 du GPU. C&rsquo;est un rep\u00e8re : tout calcul qui fait moins d&rsquo;op\u00e9rations par octet que ce rep\u00e8re laisse les unit\u00e9s de calcul en attente, tout calcul qui en fait plus laisse la m\u00e9moire en avance.<\/p>\n<h2 id=\"ne-le-confonds-pas-avec-l-intensite-arithmetique\">Ne le confonds pas avec l&rsquo;intensit\u00e9 arithm\u00e9tique<\/h2>\n<p>Deux nombres du m\u00eame genre circulent, et ils n&rsquo;ont pas le m\u00eame propri\u00e9taire. Le rapport ops:octet appartient \u00e0 la machine : c&rsquo;est une mesure par seconde. L&rsquo;<strong>intensit\u00e9 arithm\u00e9tique<\/strong> appartient \u00e0 un calcul pr\u00e9cis, une fonction ou un algorithme : c&rsquo;est le rapport entre le travail effectu\u00e9 et le trafic m\u00e9moire qu&rsquo;il provoque. On l&rsquo;appelle aussi intensit\u00e9 op\u00e9rationnelle.<\/p>\n<p>Pour les mettre face \u00e0 face, on utilise un graphique appel\u00e9 mod\u00e8le roofline. En abscisse, l&rsquo;intensit\u00e9 arithm\u00e9tique ; en ordonn\u00e9e, la performance atteignable en t\u00e9raFLOPS ; les deux axes sont en \u00e9chelle logarithmique.<\/p>\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6adef47127618&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6adef47127618\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1422\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_modele_roofline-scaled.png\" alt=\"Mod\u00e8le roofline d'un H100 en FP16 : une diagonale ascendante pour la zone limit\u00e9e par la m\u00e9moire, un plateau horizontal pour la zone limit\u00e9e par le calcul, s\u00e9par\u00e9s par un trait vertical pointill\u00e9 \u00e0 295 ops:octet\" class=\"wp-image-204\" srcset=\"https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_modele_roofline-scaled.png 2560w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_modele_roofline-300x167.png 300w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_modele_roofline-1024x569.png 1024w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_modele_roofline-768x427.png 768w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_modele_roofline-1536x853.png 1536w, https:\/\/www.ranksignal.fr\/wp-content\/uploads\/2026\/10\/b1_ch04_modele_roofline-2048x1138.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Rep\u00e8re le trait pointill\u00e9 vertical : c&rsquo;est le rapport ops:octet du H100, la fronti\u00e8re entre les deux r\u00e9gimes. \u00c0 sa gauche, la performance suit la diagonale du plafond de bande passante ; \u00e0 sa droite, elle plafonne sur l&rsquo;horizontale du plafond de performance.<\/figcaption><\/figure>\n\n\n<p>Le verdict est ensuite m\u00e9canique. Si l&rsquo;intensit\u00e9 d&rsquo;un calcul d\u00e9passe le rapport ops:octet du mat\u00e9riel et atteint le plateau, <strong>il est limit\u00e9 par le calcul<\/strong> ; si elle reste en dessous et touche la diagonale, il est limit\u00e9 par la m\u00e9moire.<\/p>\n<h2 id=\"h100-h200-b200-le-meme-rapport\">H100, H200, B200 : le m\u00eame rapport ?<\/h2>\n<p>Reprenons nos deux fiches. Les chiffres ci-dessous sont ceux des fiches en FP8 dense ; la derni\u00e8re colonne, c&rsquo;est toi qui la calcules en divisant.<\/p>\n<table>\n<thead>\n<tr>\n<th>GPU<\/th>\n<th>Calcul FP8 dense<\/th>\n<th>Bande passante<\/th>\n<th>Rapport ops:octet (FP8)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>H100<\/td>\n<td>1 979 t\u00e9raFLOPS<\/td>\n<td>3,35 To\/s<\/td>\n<td>\u2248 591<\/td>\n<\/tr>\n<tr>\n<td>H200<\/td>\n<td>1 979 t\u00e9raFLOPS<\/td>\n<td>4,8 To\/s<\/td>\n<td>\u2248 412<\/td>\n<\/tr>\n<tr>\n<td>B200<\/td>\n<td>\u2248 5 p\u00e9taFLOPS<\/td>\n<td>jusqu&rsquo;\u00e0 8 To\/s<\/td>\n<td>\u2248 625<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Deux enseignements. D&rsquo;abord, le H200 a les m\u00eames FLOPS que le H100 mais plus de bande passante : son point d&rsquo;\u00e9quilibre <strong>descend de 591 \u00e0 412<\/strong>, de sorte qu&rsquo;un plus grand nombre de calculs se retrouve \u00e0 droite du trait, du c\u00f4t\u00e9 o\u00f9 le calcul bride.<\/p>\n<p>Ensuite, le rapport d&rsquo;un m\u00eame GPU n&rsquo;est pas unique. Le H100 en FP16 affiche 989 t\u00e9raFLOPS, soit 295, alors qu&rsquo;en FP8 ses Tensor Cores sont deux fois plus rapides et son rapport grimpe vers 591, pour la m\u00eame bande passante. Les FLOPS doublent en effet g\u00e9n\u00e9ralement \u00e0 chaque division par deux de la pr\u00e9cision.<\/p>\n<p>Il y a une contrepartie : d\u00e9placer des valeurs FP8 demande moiti\u00e9 moins de bande passante que des valeurs FP16. Le seuil monte, mais chaque valeur \u00e0 lire p\u00e8se moins.<\/p>\n<h2 id=\"trois-pieges-en-lisant-une-fiche-technique\">Trois pi\u00e8ges en lisant une fiche technique<\/h2>\n<blockquote>\n<p><strong>\u26a0\ufe0f Pi\u00e8ge<\/strong> Comparer deux rapports ops:octet sans v\u00e9rifier qu&rsquo;ils portent sur le m\u00eame type de FLOPS et la m\u00eame pr\u00e9cision revient \u00e0 comparer des choux et des carottes.<\/p>\n<\/blockquote>\n<p>Le premier pi\u00e8ge est la <strong>parcimonie<\/strong>. Les fiches donnent aussi des FLOPS \u00ab parcimonieux \u00bb, valables pour des tenseurs \u00e0 structure 2:4 dont la moiti\u00e9 des valeurs est nulle. Ils valent souvent, mais pas toujours, le double des FLOPS denses : un rapport calcul\u00e9 avec eux est artificiellement gonfl\u00e9.<\/p>\n<p>Le deuxi\u00e8me est la pr\u00e9cision. Un GPU capable d&rsquo;un p\u00e9taFLOPS en 16 bits en fait deux en 8 bits, donc le m\u00eame GPU affiche deux rapports diff\u00e9rents selon le format num\u00e9rique. <strong>Compare \u00e0 pr\u00e9cision identique<\/strong>, jamais un chiffre FP8 \u00e0 un chiffre FP16.<\/p>\n<p>Le troisi\u00e8me tient au d\u00e9nominateur. La bande passante d&rsquo;une fiche est un d\u00e9bit de pointe : le rapport que tu en tires est un rep\u00e8re th\u00e9orique, pas une mesure de ce que ton programme obtiendra.<\/p>\n<h2 id=\"choisir-un-gpu-selon-son-goulot\">Choisir un GPU selon son goulot<\/h2>\n<p>Le rapport ops:octet ne sert pas \u00e0 classer les GPU, mais \u00e0 <strong>se demander quel chiffre de la fiche compte<\/strong> pour ta charge de travail. Pour le <a href=\"\/blog\/inference\/l-etape-du-prefill-d-un-llm\/\" title=\"prefill d&#x27;un LLM\">prefill d&rsquo;un LLM<\/a> et pour la g\u00e9n\u00e9ration d&rsquo;images et de vid\u00e9os, le calcul est le goulot : on choisit l&rsquo;acc\u00e9l\u00e9rateur qui offre le plus de FLOPS.<\/p>\n<p>Pour le <a href=\"\/blog\/inference\/l-etape-du-decode-d-un-llm\/\" title=\"decode\">decode<\/a>, \u00e0 taille de lot faible ou moyenne, c&rsquo;est la bande passante m\u00e9moire qui limite. Pour g\u00e9n\u00e9rer plus de tokens par seconde, on prend alors l&rsquo;acc\u00e9l\u00e9rateur \u00e0 plus forte bande passante : le H200 plut\u00f4t que le H100.<\/p>\n<p>Une derni\u00e8re colonne de la fiche \u00e9chappe au rapport : la <strong>capacit\u00e9 de la VRAM<\/strong>. Elle doit loger les poids du mod\u00e8le, avec au moins la moiti\u00e9 de leur taille en marge pour le cache KV ; sans cela, le chargement \u00e9choue par une erreur de m\u00e9moire insuffisante.<\/p>\n<blockquote>\n<p><strong>\ud83d\udccc \u00c0 retenir<\/strong> Deux chiffres de fiche, une division, un seuil : en dessous, le calcul attend la m\u00e9moire ; au-dessus, la m\u00e9moire attend le calcul. Lis toujours le chiffre dense, \u00e0 la pr\u00e9cision de ta charge.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Le rapport ops:octet d&rsquo;un GPU, c&rsquo;est ses FLOPS divis\u00e9s par sa bande passante : apprends \u00e0 le calculer, \u00e0 le lire et \u00e0 l&rsquo;utiliser pour choisir ton mat\u00e9riel.<\/p>\n","protected":false},"author":1,"featured_media":597,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-598","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inference"],"_links":{"self":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/comments?post=598"}],"version-history":[{"count":3,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/598\/revisions"}],"predecessor-version":[{"id":800,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/posts\/598\/revisions\/800"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media\/597"}],"wp:attachment":[{"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/media?parent=598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/categories?post=598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ranksignal.fr\/blog\/wp-json\/wp\/v2\/tags?post=598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}