Both sides previous revisionPrevious revisionNext revision | Previous revision |
start [2023/10/29 19:30] – [Tutorial Materials] aolgun | start [2024/06/20 10:48] (current) – [Tutorial Materials] geraldod |
---|
~~NOCACHE~~ | ~~NOCACHE~~ |
| |
===== Real-world Processing-in-Memory Systems for Modern Workloads ===== | ===== HEART 2024 Tutorial on Memory-Centric Computing Systems (Half Day) ===== |
| |
==== Tutorial Description ==== | ==== Tutorial Description ==== |
Processing-in-Memory (PIM) is a computing paradigm that aims at overcoming the data movement bottleneck (i.e., the waste of execution cycles and energy resulting from the back-and-forth data movement between memory units and compute units) by making memory compute-capable. | Processing-in-Memory (PIM) is a computing paradigm that aims at overcoming the data movement bottleneck (i.e., the waste of execution cycles and energy resulting from the back-and-forth data movement between memory units and compute units) by making memory (and storage) systems compute-capable. |
| |
| Explored over several decades since the 1960s, PIM systems are now becoming a reality with the advent of the first commercial products and prototypes. |
| |
| Several startups (e.g., UPMEM, NeuroBlade, Mythic, Syntiant, Aizip, Axelera, d-Matrix, Gyrfalcon Technology, MemComputing, SEMRON, SureCore, Synthara, TetraMem, EnCharge AI) are already commercializing real PIM hardware, each with its design approach and target applications. Major vendors (e.g., Samsung, SK Hynix, Micron, Alibaba) have presented real PIM chip and system prototypes in the past several years. |
| |
| Recent PIM products and prototypes place compute units near the memory arrays. New memory interfaces like CXL (Compute Express Link) aid the enablement of compute-capable memories. At the same time, academia and industry are actively exploring other types of PIM by, e.g., exploiting the analog operation of DRAM, SRAM, flash memory, and emerging non-volatile memories, and hybrid PIM architectures that combine processing capabilities of different types and at different parts of the memory/storage hierarchy. |
| |
| {{:heart24_banner.jpeg?400 |}} |
| |
Explored over several decades since the 1960s, PIM systems are becoming a reality with the advent of the first commercial products and prototypes. | PIM can improve performance and energy efficiency for many modern applications, enabling a commercially viable way of dealing with huge amounts of data bottlenecking our computing systems, which is especially exacerbated by workloads like AI/ML and genomics. In fact, workloads like large language model training and inference can potentially be “killer applications'' for PIM. |
| |
A number of startups (e.g., UPMEM, Neuroblade) are already commercializing real PIM hardware, each with its own design approach and target applications. Several major vendors (e.g., Samsung, SK Hynix, Alibaba) have presented real PIM chip prototypes in the last two years. Most of these architectures have in common that they place compute units near the memory arrays. This type of PIM is called processing near memory (PNM). | However, there are many open questions spanning the entire computing stack and many challenges for widespread adoption. For example, it is critical to (1) develop programming frameworks and tools that can lower the learning curve and ease the adoption of PIM systems, (2) develop methods to identify what type of PIM would be useful for what workload, and (3) design system and security mechanisms that enable PIM in a wider scale. Implications of PIM on all aspects of computing systems and workloads is a challenging and exciting field of study. |
| |
{{:micro-pim-tutorial.jpg?400 |}} | This tutorial focuses on the latest advances in PIM technology, spanning both hardware and software, including novel PIM ideas, different tools and frameworks to conduct PIM research, and programming techniques and optimization strategies for PIM kernels. We will (1) provide an introduction to PIM and the taxonomy of PIM systems, (2) give an overview and a rigorous analysis of existing PIM hardware from industry and academia, (3) provide and describe hardware and software infrastructures that can enable new and experienced researchers to conduct research in PIM systems, and (4) shed light on how to improve future PIM systems for emerging memory-bound workloads. |
| |
PIM can provide large improvements in both performance and energy consumption for many modern applications, thereby enabling a commercially viable way of dealing with huge amounts of data that is bottlenecking our computing systems. Yet, it is critical to (1) study and understand the characteristics that make a workload suitable for a PIM architecture, (2) propose optimization strategies for PIM kernels, and (3) develop programming frameworks and tools that can lower the learning curve and ease the adoption of PIM. | |
| |
This tutorial focuses on the latest advances in PIM technology, workload characterization for PIM, and programming and optimizing PIM kernels. We will (1) provide an introduction to PIM and taxonomy of PIM systems, (2) give an overview and a rigorous analysis of existing real-world PIM hardware, (3) conduct hand-on labs about important workloads (machine learning, sparse linear algebra, bioinformatics, etc.) using real PIM systems, and (4) shed light on how to improve future PIM systems for such workloads. | |
| |
==== Livestream ==== | ==== Livestream ==== |
[[https://ethz.zoom.us/j/68459763236?pwd=NEIzK1JGV0pHTjRaUzV5NmRna3JkZz09|Zoom livestream]] | [[https://www.youtube.com/live/0YKI2pVmrik |YouTube livestream]] |
| {{youtube>0YKI2pVmrik?large}} |
[[https://youtube.com/live/ohU00NSIxOI?feature=share|YouTube livestream]] | |
{{youtube>ohU00NSIxOI?large}} | |
| |
==== Organizers ==== | ==== Organizers ==== |
^ Name ^ E-mail ^ | ^ Name ^ E-mail ^ |
|[[https://ee.ethz.ch/the-department/people-a-z/person-detail.MjQxMjgy.TGlzdC8zMjc5LC0xNjUwNTg5ODIw.html|Juan Gómez Luna]]| <juan.gomez@safari.ethz.ch> | | |[[https://geraldofojunior.github.io/|Geraldo F. Oliveira]]| <geraldod@safari.ethz.ch> | |
|[[https://people.inf.ethz.ch/omutlu/index.html|Onur Mutlu]]| <onur.mutlu@safari.ethz.ch> | | |[[https://ee.ethz.ch/the-department/people-a-z/person-detail.MjM3MTk5.TGlzdC8zMjc5LC0xNjUwNTg5ODIw.html|Dr. Mohammad Sadrosadati]] | <mohammad.sadrosadati@safari.ethz.ch> | |
|[[https://ee.ethz.ch/the-department/people-a-z/person-detail.MjUzNDIw.TGlzdC8zMjc5LC0xNjUwNTg5ODIw.html|Ataberk Olgun]] | <ataberk.olgun@safari.ethz.ch> | | |[[http://ataberkolgun.com/|Ataberk Olgun]] | <ataberk.olgun@safari.ethz.ch> | |
|[[https://ee.ethz.ch/the-department/people-a-z/person-detail.MjQzODA4.TGlzdC8zMjc5LC0xNjUwNTg5ODIw.html|Geraldo F. Oliveira]] | <geraldod@safari.ethz.ch> | | |[[https://people.inf.ethz.ch/omutlu/index.html|Professor Onur Mutlu]]| <onur.mutlu@safari.ethz.ch> | |
| |
===== Agenda (October 29, 2023) ===== | ===== Agenda (June 21, 2024) ===== |
==== Lectures (tentative schedule, time zone: EDT GMT-4) ==== | ==== Lectures (tentative schedule, time zone: UTC+1) ==== |
* 7:55am-8:00am, Dr Juan Gómez Luna, “Welcome & Agenda.” | * 10:30 am-11:00 am, Prof. Onur Mutlu / Geraldo F. Oliveira, "Memory-Centric Computing: Introduction to PIM as a Paradigm to Overcome the Data Movement Bottleneck." |
* 8:00am-9:20am, Prof. Onur Mutlu / Geraldo F. Oliveira, "Memory-centric Computing: Introduction to PIM as a Paradigm to Overcome the Data Movement Bottleneck." | * Introduction: PIM as a paradigm to overcome the data movement bottleneck. Workload analysis and system bottlenecks. |
* PIM taxonomy: PNM (processing near memory) and PUM (processing using memory). | * PIM taxonomy: technology, location, and nature of computation (e.g., PNM (processing-near-memory) and PUM (processing-using-memory). |
* DAMOV Workload Characterization Methodology. | * Advances in different types of PIM at different parts of the memory/storage systems. |
* 9:20am-10:20am, Dr. Juan Gómez Luna, “Processing-Near-Memory: Real PNM.” | * Research challenges and opportunities in PIM systems, with a focus on enabling adoption in the real world. |
* PNM prototypes: Samsung HBM-PIM, SK Hynix AiM, Samsung AxDIMM, Alibaba HB-PNM. | * 11:00 am-11:20 am, Geraldo F. Oliveira, "Real-World PNM Systems." |
* UPMEM PIM: Architecture Characterization, Programming. | * Example real-world PNM systems: UPMEM PIM, Samsung HBM-PIM & CXL-PNM, SK Hynix AiM & CMS 2.0, Samsung AxDIMM, Alibaba PNM, Mythic. |
| * 11:30 am-12:00 pm, Geraldo F. Oliveira, "PUM Systems for Bulk Bitwise Operations." |
| * PUM systems for bulk bitwise operations in simulated and off-the-shelf memory technologies (DRAM, SRAM, and NVM). |
| |
* Coffee break (10:20am-10:40am) | * 12:30 pm-02:00pm, Lunch break. |
| |
* 10:40am-11:20am, Prof. Youngsok Kim (Yonsei University), "PID-Join: A Fast In-Memory Join Algorithm for Commodity PIM-Enabled DIMMs." | * 02:00 pm-02:30 pm, Geraldo F. Olveira, "PIM Programming & Infrastructure for PIM Research." |
* 11:20am-12:00pm, Dr. Abu Sebastian (IBM Research - Zürich), "PUM Based on Memristive Devices: The IBM HERMES Project Chip." | * Programming techniques and tools for PIM systems. |
| * Infrastructures for doing PIM Research (simulation, real systems, FPGA prototypes). |
* Lunch break (12:00pm-1:00pm) | * 02:30 pm-03:00 pm, Geraldo F. Oliveira, “Introduction/Preparation for Hands-on Labs.” |
| |
* 1:00pm-2:00pm, Geraldo F. Oliveira, "Processing-Using-DRAM: Ambit, SIMDRAM, pLUTo." | |
* 2:00pm-3:15pm, Dr. Juan Gómez Luna, “Accelerating Modern Workloads on a General-purpose PIM System: Machine leaning, Genomics...” | |
* 3:15pm-3:45pm, Dr. Juan Gómez Luna, “Adoption Issues: How to Enable PIM?” | |
* 3:45pm-4:15pm, Dr. Juan Gómez Luna, "SimplePIM: A Software Framework for High-level PIM Programming." | |
* 4:15pm-5:00pm, Ataberk Olgun, "Processing-Using-Memory Prototypes: PiDRAM." | |
* 5:00pm-5:10pm, Dr. Juan Gómez Luna, “Introduction/Preparation for Hands-on Labs.” | |
* Optional - Hands-on Lab: Programming and Understanding a Real PIM Architecture. | * Optional - Hands-on Lab: Programming and Understanding a Real PIM Architecture. |
| |
==== Tutorial Materials ==== | ==== Tutorial Materials ==== |
| |
| |
^ Time ^ Speaker ^ Title ^ Materials ^ | ^ Time ^ Speaker ^ Title ^ Materials ^ |
| 7:55am-8:00am | Dr. Juan Gómez Luna | Welcome & Agenda |{{realpimtutorial-micro23-agenda-juan-slides.pdf|(PDF)}} {{realpimtutorial-micro23-agenda-juan-slides.pptx|(PPT)}}| | | 10:30am-11:00am | Prof. Onur Mutlu / Geraldo F. Oliveira | Memory-Centric Computing |{{geraldo-heart24-lecture1-memory-centric-computing-beforelecture.pdf|(PDF)}} {{geraldo-heart24-lecture1-memory-centric-computing-beforelecture.pptx|(PPT)}}| |
| 8:00am-9:20am | Prof. Onur Mutlu / Geraldo F. Oliveira | Memory-Centric Computing |{{geraldo-_micropimtutorial-2023-memory-centric-computing-beforetalk.pdf|(PDF)}} {{geraldo-_micropimtutorial-2023-memory-centric-computing-beforetalk.pptx|(PPT)}}| | | 11:00am-11:20am | Geraldo F. Oliveira | Real-World PNM Systems |{{geraldo-heart24-lecture2-processing-near-memory-beforelecture.pdf|(PDF)}} {{geraldo-heart24-lecture2-processing-near-memory-beforelecture.pptx|(PPT)}}| |
| 9:20am-10:20am | Dr. Juan Gómez Luna | Processing-Near-Memory: Real PNM Architectures / Programming General-purpose PIM |{{realpimtutorial-micro23-processingnearmemory-juan-slides.pdf|(PDF)}} {{realpimtutorial-micro23-processingnearmemory-juan-slides.pptx|(PPT)}}| | | 11:30am-12:00pm | Geraldo F. Oliveira | PUM Systems for Bulk Bitwise Operations |{{geraldo-heart24-lecture3-processing-using-memory-beforelecture.pdf|(PDF)}} {{geraldo-heart24-lecture3-processing-using-memory-beforelecture.pptx|(PPT)}}| |
| 10:40am-11:20am | Prof. Youngsok Kim | PID-Join: A Fast In-Memory Join Algorithm for Commodity PIM-Enabled DIMMs |{{.pdf|(PDF)}} {{.pptx|(PPT)}} \\ [[https://dl.acm.org/doi/10.1145/3589258|SIGMOD'2023]]|| | | 12:30pm-02:00pm | | Lunch Break| |
| 11:20am-12:00pm | Dr. Abu Sebastian | PUM Based on Memristive Devices: The IBM HERMES Project Chip |{{.pdf|(PDF)}} {{.pptx|(PPT)}} \\ [[https://www.youtube.com/watch?v=wNmqQHiEZNk&t=1s|Lecture (ETH Zürich, Fall 2020]] \\ [[https://github.com/IBM/aihwkit|IBM Analog Hardware Acceleration Kit]] \\ [[https://www.nature.com/articles/s41565-020-0655-z|Nature Nanotechnology (2020)]] \\ [[https://www.nature.com/articles/s41928-023-01010-1|Nature Electronics (2023)]] \\ [[https://ieeexplore.ieee.org/abstract/document/9957094|IEEE VLSI (2023)]] \\ [[https://www.nature.com/articles/s41467-023-40770-4|Nature Communications (2023)]]| | | 02:00pm-02:30pm | Geraldo F. Oliveira | PIM Programming & Infrastructure for PIM Research |{{geraldo-heart24-lecture4-adoption-programmability-beforelecture.pdf|(PDF)}} {{geraldo-heart24-lecture4-adoption-programmability-beforelecture.pptx|(PPT)}}| |
| 1:00pm-2:00pm | Geraldo F. Oliveira | Processing-Using-DRAM: Ambit, SIMDRAM, pLUTo |{{geraldo-_micropimtutorial-2023-processing-using-memory-beforetalk.pdf|(PDF)}} {{geraldo-_micropimtutorial-2023-processing-using-memory-beforetalk.pptx|(PPT)}}| | | 02:30pm-03:30pm | Geraldo F. Oliveira| Hands-on Lab: Programming and Understanding a Real Processing-in-Memory Architecture |{{heart_2024___pim_tutorial_handout.pdf|(Handout)}} \\ {{geraldo-heart24-processingupmem.pdf|(PDF)}} {{geraldo-heart24-processingupmem.pptx|(PPT)}}| |
| 2:00pm-3:15pm | Dr. Juan Gómez Luna | Accelerating Modern Workloads on a General-purpose PIM System: Machine leaning, Genomics... |{{realpimtutorial-micro23-modernworkloads-juan-slides.pdf|(PDF)}} {{realpimtutorial-micro23-modernworkloads-juan-slides.pptx|(PPT)}}| | |
| 3:15pm-3:45pm | Dr. Juan Gómez Luna | Adoption Issues: How to Enable PIM? |{{realpimtutorial-micro23-enablingpim-juan-slides.pdf|(PDF)}} {{realpimtutorial-micro23-enablingpim-juan-slides.pptx|(PPT)}}| | |
| 3:45pm-4:15pm | Dr. Juan Gómez Luna | SimplePIM: A Software Framework for High-level PIM Programming |{{realpimtutorial-micro23-simplepim-juan-slides.pdf|(PDF)}} {{realpimtutorial-micro23-simplepim-juan-slides.pptx|(PPT)}}| | |
| 4:15pm-5:00pm | Ataberk Olgun | Processing-Using-Memory Prototypes: PiDRAM |{{realpimtutorial-micro23-pidram_drambender-ataberk-slides.pdf|(PDF)}} {{realpimtutorial-micro23-pidram_drambender-ataberk-slides.pptx|(PPT)}}| | |
| 5:00pm-5:10pm | Dr. Juan Gómez Luna | Hands-on Lab: Programming and Understanding a Real Processing-in-Memory Architecture |{{lab_micro2023.pdf|(Handout)}} \\ {{realpimtutorial-micro23-lab-juan-slides.pdf|(PDF)}} {{realpimtutorial-micro23-lab-juan-slides.pptx|(PPT)}}| | |
| |
==== Learning Materials ==== | ==== Learning Materials ==== |
| |
=== Recommended Materials === | === Recommended Materials === |
* Gómez-Luna, J., and Mutlu, O., Data-Centric Architectures: Fundamentally Improving Performance and Energy (227-0085-37L), ETH Zürich, Fall 2022. | |
* [[https://safari.ethz.ch/projects_and_seminars/fall2022/doku.php?id=processing_in_memory | Course Website]] | |
* [[https://youtube.com/playlist?list=PL5Q2soXY2Zi8KzG2CQYRNQOVD0GOBrnKy | Lecture Playlist]] | |
* Mutlu, O., Ghose, S., Gómez-Luna, J., and Ausavarungnirun, R. A Modern Primer on Processing in Memory. In Emerging Computing: From Devices to Systems, 2023. | * Mutlu, O., Ghose, S., Gómez-Luna, J., and Ausavarungnirun, R. A Modern Primer on Processing in Memory. In Emerging Computing: From Devices to Systems, 2023. |
* [[https://arxiv.org/pdf/2012.03112.pdf | PDF (arXiv)]] | |
* Gómez-Luna, J., El Hajj, I., Fernandez, I., Giannoula, C., Oliveira, G. F., and Mutlu, O. Benchmarking a New Paradigm: Experimental Analysis and Characterization of a Real Processing-in-Memory System. IEEE Access, 2022. | * Gómez-Luna, J., El Hajj, I., Fernandez, I., Giannoula, C., Oliveira, G. F., and Mutlu, O. Benchmarking a New Paradigm: Experimental Analysis and Characterization of a Real Processing-in-Memory System. IEEE Access, 2022. |
* [[https://arxiv.org/pdf/2105.03814.pdf | PDF (arXiv)]] | * [[https://arxiv.org/pdf/2105.03814.pdf | PDF (arXiv)]] |
* [[https://arxiv.org/pdf/2111.00082.pdf | PDF (arXiv)]] | * [[https://arxiv.org/pdf/2111.00082.pdf | PDF (arXiv)]] |
* [[https://github.com/cmu-safari/pidram | Repository (GitHub)]] | * [[https://github.com/cmu-safari/pidram | Repository (GitHub)]] |
| * Oliveira, G. F., Gómez-Luna, J., Orosa, L., Ghose, S., Vijaykumar, N., Fernandez, I., Sadrosadati, M., Mutlu, O. DAMOV: A New Methodology and Benchmark Suite for Evaluating Data Movement Bottlenecks. IEEE Access, 2021. |
| * [[https://arxiv.org/pdf/2105.03725.pdf | PDF (arXiv)]] |
| * [[https://github.com/CMU-SAFARI/DAMOV | Repository (GitHub)]] |
| * Luo, H., Tu, Y. C., Bostancı, F. N., Olgun, A., Ya, A. G., Mutlu, O. Ramulator 2.0: A Modern, Modular, and Extensible DRAM Simulator. IEEE CAL, 2023. |
| * [[https://arxiv.org/pdf/2308.11030.pdf | PDF (arXiv)]] |
| * [[https://github.com/CMU-SAFARI/ramulator2 | Repository (GitHub)]] |
| * Olgun, A., Hassan, H., Yağlıkçı, A. G., Tuğrul, Y. C., Orosa, L., Luo, H., Patel, M., Ergin, O., Mutlu, O. DRAM Bender: An Extensible and Versatile FPGA-based Infrastructure to Easily Test State-of-the-art DRAM Chips. IEEE CAD, 2023. |
| * [[https://arxiv.org/pdf/2211.05838.pdf | PDF (arXiv)]] |
| * [[https://github.com/CMU-SAFARI/DRAM-Bender | Repository (GitHub)]] |
| * Oliveira, G. F., Olgun, A., Yaglikci, A. G., Bostanci, N., Gomez-Luna, J., Ghose, S., Mutlu, O., MIMDRAM: An End-to-End Processing-Using-DRAM System for High-Throughput, Energy-Efficient and Programmer-Transparent Multiple-Instruction Multiple-Data Computing, in HPCA, 2024. |
| * [[https://arxiv.org/pdf/2402.19080.pdf | PDF (arXiv)]] |
| * [[https://github.com/CMU-SAFARI/MIMDRAM | Repository (GitHub)]] |
| * Hajinazar, N., Oliveira, G. F., Gregorio, S., Ferreira, J. D., Ghiasi, N. M., Patel, M., Alser, M., Ghose, S., Gomez-Luna, J., Mutlu. O., SIMDRAM: An End-to-End Framework for Bit-Serial SIMD Computing in DRAM, in ASPLOS, 2021. |
| * [[https://arxiv.org/pdf/2105.12839.pdf | PDF (arXiv)]] |
| * [[https://www.youtube.com/watch?v=lu3Br4-kySw | Full Talk Video]] |
| * Seshadri, V., Lee, D., Mullins, T., Hassan, H., Boroumand, A., Kim, J., Kozuch, M. A., Mutlu, O., Gibbons, P. B., Mowry, T. C., Ambit: In-Memory Accelerator for Bulk Bitwise Operations Using Commodity DRAM Technology, in MICRO, 2017. |
| * [[https://people.inf.ethz.ch/omutlu/pub/ambit-bulk-bitwise-dram_micro17.pdf | PDF]] |
| |
| |
=== More Learning Materials === | === More Learning Materials === |
* Mutlu O., Memory-Centric Computing (IMACAW Keynote Talk at DAC 2023), July 2023: | * Mutlu O., Memory-Centric Computing (IMACAW Keynote Talk at DAC 2023), July 2023: |
* [[https://people.inf.ethz.ch/omutlu/pub/onur-IMACAW-Keynote-MemoryCentricComputing-9-July-2023.pdf | PDF]] [[https://people.inf.ethz.ch/omutlu/pub/onur-IMACAW-Keynote-MemoryCentricComputing-9-July-2023.pdf | PPT]] [[https://www.youtube.com/watch?v=npr5zMEkANQ | Video]] | * [[https://people.inf.ethz.ch/omutlu/pub/onur-IMACAW-Keynote-MemoryCentricComputing-9-July-2023.pdf | PDF]] [[https://people.inf.ethz.ch/omutlu/pub/onur-IMACAW-Keynote-MemoryCentricComputing-9-July-2023.pdf | PPT]] [[https://www.youtube.com/watch?v=npr5zMEkANQ | Video]] |
* Processing-in-memory: A workload-driven perspective (summary paper about recent research in PIM): | * Processing-in-Memory: A Workload-Driven Perspective (summary paper about recent research in PIM): |
* [[https://people.inf.ethz.ch/omutlu/pub/processing-in-memory_workload-driven-perspective_IBMjrd19.pdf | PDF]] | * [[https://people.inf.ethz.ch/omutlu/pub/processing-in-memory_workload-driven-perspective_IBMjrd19.pdf | PDF]] |
* Processing Data Where It Makes Sense: Enabling In-Memory Computation (summary paper about recent research in PIM): | * Processing Data Where It Makes Sense: Enabling In-Memory Computation (summary paper about recent research in PIM): |
* Processing-in-Memory course (Spring 2022): | * Processing-in-Memory course (Spring 2022): |
* [[https://safari.ethz.ch/projects_and_seminars/spring2022/doku.php?id=processing_in_memory | Course website]] | * [[https://safari.ethz.ch/projects_and_seminars/spring2022/doku.php?id=processing_in_memory | Course website]] |
* [[https://sdk.upmem.com/2023.1.0/ | UPMEM SDK documentation: The first real-world PIM architecture]] | * Gómez-Luna, J., and Mutlu, O., Data-Centric Architectures: Fundamentally Improving Performance and Energy (227-0085-37L), ETH Zürich, Fall 2022. |
| * [[https://safari.ethz.ch/projects_and_seminars/fall2022/doku.php?id=processing_in_memory | Course Website]] |
| * [[https://youtube.com/playlist?list=PL5Q2soXY2Zi8KzG2CQYRNQOVD0GOBrnKy | Lecture Playlist]] |
| * [[https://arxiv.org/pdf/2012.03112.pdf | PDF (arXiv)]] |
| |