{"id":119157,"date":"2024-08-07T15:43:09","date_gmt":"2024-08-07T13:43:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/dostupen-vortex-2-2-otkrytyj-gpgpu-na-baze-arhitektury-risc-v"},"modified":"2024-08-07T15:43:09","modified_gmt":"2024-08-07T13:43:10","slug":"dostupen-vortex-2-2-otkrytyj-gpgpu-na-baze-arhitektury-risc-v","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/dostupen-vortex-2-2-otkrytyj-gpgpu-na-baze-arhitektury-risc-v","title":{"rendered":"Vortex 2.2 est disponible, un GPGPU open source bas\u00e9 sur l'architecture RISC-V","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>La version 2.2 du projet Vortex a \u00e9t\u00e9 publi\u00e9e, d\u00e9veloppant un GPGPU bas\u00e9 sur l'architecture de l'ensemble des instructions RISC-V, con\u00e7u pour l'ex\u00e9cution de calculs parall\u00e8les \u00e0 l'aide de l'API OpenCL et du mod\u00e8le d'ex\u00e9cution SIMT (Single Instruction, Multiple Threads). Le projet peut \u00e9galement \u00eatre utilis\u00e9 pour la recherche dans le domaine de la 3D et pour le d\u00e9veloppement de nouvelles architectures de GPU. Les sch\u00e9mas, descriptions des blocs mat\u00e9riels en Verilog, simulateur, pilotes et documentation projet sont distribu\u00e9s sous la licence Apache 2.0.     <\/p>\n<p>La base du GPGPU est l'ISA type RISC-V, \u00e9tendu par certaines instructions suppl\u00e9mentaires n\u00e9cessaires au support des fonctions GPU et \u00e0 la gestion des flux. Les modifications de l'architecture de l'ensemble d'instructions RISC-V sont minimis\u00e9es et exploitent autant que possible les instructions vectorielles existantes. Parmi les instructions suppl\u00e9mentaires, on peut noter : \u00ab tex \u00bb pour acc\u00e9l\u00e9rer le traitement des textures, vx_rast pour g\u00e9rer la rasterisation, vx_rop pour le traitement des fragments, de la profondeur et de la transparence, vx_imadd pour effectuer l'op\u00e9ration \u00ab multiplier et additionner \u00bb, vx_wspawn, vx_tmc et vx_bar pour activer les fronts d'instructions et les flux en eux (wavefront, ensemble de threads, ex\u00e9cut\u00e9s en parall\u00e8le par l'Engine SIMD), vx_split et vx_join.     <center><img decoding=\"async\" alt=\"Vortex 2.2 est disponible, un GPGPU open source bas\u00e9 sur l&#039;architecture RISC-V \" src=\"\/wp-content\/uploads\/2024\/08\/e9bf3436f9ea931993a04517f807fb72.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>          <\/p>\n<p>Le GPGPU en d\u00e9veloppement prend en charge les architectures d'ensemble d'instructions RISC-V 32 bits et 64 bits RV32IMF et RV64IMAFD, et peut inclure une m\u00e9moire partag\u00e9e optionnelle, des caches de niveaux L1, L2 et L3, ainsi qu'un nombre configurable de c\u0153urs, de blocs de t\u00e2ches (warps) et de flux. Pour chaque c\u0153ur, il est possible d'activer un nombre configurable d'ALU, FPU, LSU et SFU. Les prototypes peuvent \u00eatre r\u00e9alis\u00e9s \u00e0 l'aide de FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 et Xilinx Versal VCK5000. Pour simuler le fonctionnement de la puce, les simulateurs Verilator (simulateur Verilog), RTLSIM (simulation RTL) et SimX (simulation logicielle) peuvent \u00eatre utilis\u00e9s.    <\/p>\n<p>Pour le d\u00e9veloppement d'applications, un ensemble d'outils est propos\u00e9, incluant des variantes de PoCL adapt\u00e9es \u00e0 un fonctionnement avec Vortex (compilateur et runtime OpenCL), LLVM\/Clang, GCC et Binutils. Le projet supporte la sp\u00e9cification OpenCL 1.2 et, \u00e0 travers la traduction en OpenCL, permet la prise en charge de la repr\u00e9sentation interm\u00e9diaire des shaders SPIR-V. Pour les graphismes sur les technologies Vortex, un GPU Skybox ouvert est en cours de d\u00e9veloppement, prenant en charge l'API graphique Vulkan. Le prototype Skybox, cr\u00e9\u00e9 sur la base du FPGA Altera Stratix 10 et incluant 32 c\u0153urs (512 threads), a permis d'atteindre une performance de transformation de 3,7 gigapixels par seconde (29,4 gigatransactions par seconde) \u00e0 une fr\u00e9quence de 230 MHz.           <\/p>\n<p>Parmi les changements dans la version Vortex 2.2 :  <\/p>\n<ul>\n<li class=\"l\"> Ajout de l'API vx_spawn_taskgroups pour le lancement des c\u0153urs supportant l'ex\u00e9cution segment\u00e9e des t\u00e2ches 3D.\n<li class=\"l\"> Ajout de la prise en charge de ZICOND, une extension de l'architecture de jeu d'instructions RISC-V, permettant l'ex\u00e9cution conditionnelle des op\u00e9rations sans branchement.\n<li class=\"l\"> Le compilateur OpenCL a \u00e9t\u00e9 modifi\u00e9 pour planifier l'ex\u00e9cution au niveau de fils (thread-level), chaque fil ex\u00e9cutant sa t\u00e2che ind\u00e9pendamment des autres, au lieu de groupes de t\u00e2ches (warp-level) comme auparavant.\n<li class=\"l\"> Ajout de la prise en charge de la compilation JIT et des c\u0153urs 64 bits dans OpenCL.\n<li class=\"l\"> Mise en \u0153uvre de la prise en charge du chargement dynamique du runtime Vortex.\n<li class=\"l\"> Une nouvelle documentation pour la configuration des FPGA Xilinx a \u00e9t\u00e9 propos\u00e9e.\n<li class=\"l\"> Tests de synth\u00e8se logique inclus en utilisant l'outil Yosys.\n<li class=\"l\"> La prise en charge du cache a \u00e9t\u00e9 ajout\u00e9e pour les op\u00e9rations hi\u00e9rarchiques flush et en mode write-back.\n<li class=\"l\"> Optimisation de la vitesse de v\u00e9rification scoreboard et du traitement des op\u00e9randes au niveau des transferts de registre (RTL, Register Transfer Level).\n<li class=\"l\"> Ajout de la prise en charge du simulateur de m\u00e9moire DRAM Ramulator 2.0.\n<li class=\"l\"> Migration vers l'utilisation des nouvelles versions Verilator 5.0 (simulateur SystemVerilog) et LLVM 18.0, et mise \u00e0 jour de l'outil bas\u00e9 sur CentOS 7.9.\n<li class=\"l\"> Le service GitHub CI a \u00e9t\u00e9 adopt\u00e9 \u00e0 la place du syst\u00e8me d'int\u00e9gration continue Travis CI.    <\/ul>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61669\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Vortex 2.2, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 GPGPU \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 RISC-V, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c API OpenCL \u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f SIMT (Single Instruction, Multiple Threads). \u041f\u0440\u043e\u0435\u043a\u0442 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u043e\u0432\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 GPU. \u0421\u0445\u0435\u043c\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Verilog, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":119158,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-119157","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Vortex 2.2, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 GPGPU \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 RISC-V, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c API OpenCL \u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f SIMT.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/dostupen-vortex-2-2-otkrytyj-gpgpu-na-baze-arhitektury-risc-v\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d Vortex 2.2, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 GPGPU \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b RISC-V | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Vortex 2.2, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 GPGPU \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 RISC-V, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c API OpenCL \u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f SIMT.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/dostupen-vortex-2-2-otkrytyj-gpgpu-na-baze-arhitektury-risc-v\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-08-07T13:43:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-08-07T13:43:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Vortex 2.2, GPGPU ouvert bas\u00e9 sur l'architecture RISC-V, est disponible | ProHoster","description":"La sortie du projet Vortex 2.2 a \u00e9t\u00e9 publi\u00e9e, d\u00e9veloppant un GPGPU ouvert bas\u00e9 sur l'architecture d'instructions RISC-V, con\u00e7u pour l'ex\u00e9cution de calculs parall\u00e8les en utilisant l'API OpenCL et le mod\u00e8le d'ex\u00e9cution SIMT.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/dostupen-vortex-2-2-otkrytyj-gpgpu-na-baze-arhitektury-risc-v","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d Vortex 2.2, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 GPGPU \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b RISC-V | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Vortex 2.2, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 GPGPU \u043d\u0430 \u0431\u0430\u0437\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 RISC-V, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c API OpenCL \u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f SIMT.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/dostupen-vortex-2-2-otkrytyj-gpgpu-na-baze-arhitektury-risc-v","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-08-07T13:43:10+00:00","article:modified_time":"2024-08-07T13:43:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"119157","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 05:33:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 05:33:20","updated":"2026-01-23 05:33:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/119157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=119157"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/119157\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/119158"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=119157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=119157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=119157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}