Generational improvements to commodity DRAM throughout half a century have long solidified its prevalence as main memory across the computing industry. However, overcoming today's DRAM technology scaling challenges requires new solutions driven by both DRAM producers and consumers. In this paper, we observe that the separation of concerns between producers and consumers specified by industry-wide DRAM standards is becoming a liability to progress in addressing scaling-related concerns.To understand the problem, we study four key directions for overcoming DRAM scaling challenges using system-memory cooperation: (i) improving memory access latencies; (ii) reducing DRAM refresh overheads; (iii) securely defending against the RowHammer vulnerability; and (iv) addressing worsening memory errors. We find that the single most important barrier to advancement in all four cases is the consumer's lack of insight into DRAM reliability. Based on an analysis of DRAM reliability testing, we recommend revising the separation of concerns to incorporate limited information transparency between producers and consumers. Finally, we propose adopting this revision in a two-step plan, starting with immediate information release through crowdsourcing and publication and culminating in widespread modifications to DRAM standards.
Motivation We introduce SneakySnake, a highly parallel and highly accurate pre-alignment filter that remarkably reduces the need for computationally costly sequence alignment. The key idea of SneakySnake is to reduce the approximate string matching (ASM) problem to the single net routing (SNR) problem in VLSI chip layout. In the SNR problem, we are interested in finding the optimal path that connects two terminals with the least routing cost on a special grid layout that contains obstacles. The SneakySnake algorithm quickly solves the SNR problem and uses the found optimal path to decide whether or not performing sequence alignment is necessary. Reducing the ASM problem into SNR also makes SneakySnake efficient to implement on CPUs, GPUs and FPGAs. Results SneakySnake significantly improves the accuracy of pre-alignment filtering by up to four orders of magnitude compared to the state-of-the-art pre-alignment filters, Shouji, GateKeeper and SHD. For short sequences, SneakySnake accelerates Edlib (state-of-the-art implementation of Myers’s bit-vector algorithm) and Parasail (state-of-the-art sequence aligner with a configurable scoring function), by up to 37.7× and 43.9× (>12× on average), respectively, with its CPU implementation, and by up to 413× and 689× (>400× on average), respectively, with FPGA and GPU acceleration. For long sequences, the CPU implementation of SneakySnake accelerates Parasail and KSW2 (sequence aligner of minimap2) by up to 979× (276.9× on average) and 91.7× (31.7× on average), respectively. As SneakySnake does not replace sequence alignment, users can still obtain all capabilities (e.g. configurable scoring functions) of the aligner of their choice, unlike existing acceleration efforts that sacrifice some aligner capabilities. Availabilityand implementation https://github.com/CMU-SAFARI/SneakySnake. Supplementary information Supplementary data are available at Bioinformatics online.
The ability to generate massive amounts of sequencing data continues to overwhelm the processing capacity of existing algorithms and compute infrastructures. Calculating the similarities between a pair of genomic sequences is one of the most fundamental computational steps in genomic analysis. This step -called sequence alignment-is formulated as an approximate string matching (ASM) problem, which is typically solved using computationally expensive dynamic programming algorithms. In this work, we introduce SneakySnake, a highly parallel and highly accurate pre-alignment filter that remarkably reduces the need for the computationally costly sequence alignment step. The key idea of SneakySnake is to provide fast and highly accurate filtering by reducing the ASM problem to the single net routing (SNR) problem in VLSI chip layout. In the SNR problem, we are interested in only finding the path that connects two terminals with the least routing cost on a special grid layout that contains obstacles. The SneakySnake algorithm quickly and optimally solves the SNR problem and uses the found optimal path to decide whether performing sequence alignment is necessary. We also build two new hardware accelerator designs, Snake-on-Chip and Snake-on-GPU, that adopts modern FPGA (field-programmable gate array) and GPU (graphics processing unit) architectures, respectively, to further boost the performance of our algorithm.SneakySnake significantly improves the accuracy of pre-alignment filtering by up to four orders of magnitude compared to the state-of-the-art pre-alignment filters, Shouji, GateKeeper, and SHD. SneakySnake accelerates the state-of-the-art CPU-based sequence aligners, Edlib and Parasail, by up to 37.6× and 43.9×, respectively, without requiring hardware acceleration. The addition of Snake-on-Chip and Snake-on-GPU as a pre-alignment filter reduces the execution time of four state-of-the-art sequence aligners, designed for different computing platforms, by up to 689× (101× on average).To our knowledge, SneakySnake is the fastest and most accurate pre-alignment filtering mechanism that greatly enables the speeding up of genome sequence alignment while preserving its accuracy. It is the only pre-alignment filtering mechanism that is universal, as it works on all modern high-performance computing architectures, i.e., CPUs, GPUs, and FPGAs, by having software as well as software/hardware co-designed versions. Unlike most existing works that aim to accelerate sequence alignment, SneakySnake does not sacrifice any of the aligner capabilities (i.e., scoring and backtracking), as it does not modify or replace the aligner. The three versions of SneakySnake are open source and freely available online at https://github.com/CMU-SAFARI/SneakySnake/.
Past research has proposed numerous hardware prefetching techniques, most of which rely on exploiting one specific type of program context information (e.g., program counter, cacheline address, or delta between cacheline addresses) to predict future memory accesses. These techniques either completely neglect a prefetcher's undesirable effects (e.g., memory bandwidth usage) on the overall system, or incorporate system-level feedback as an afterthought to a system-unaware prefetch algorithm. We show that prior prefetchers often lose their performance benefit over a wide range of workloads and system configurations due to their inherent inability to take multiple different types of program context and system-level feedback information into account while prefetching. In this paper, we make a case for designing a holistic prefetch algorithm that learns to prefetch using multiple different types of program context and system-level feedback information inherent to its design.To this end, we propose Pythia, which formulates the prefetcher as a reinforcement learning agent. For every demand request, Pythia observes multiple different types of program context information to make a prefetch decision. For every prefetch decision, Pythia receives a numerical reward that evaluates prefetch quality under the current memory bandwidth usage. Pythia uses this reward to reinforce the correlation between program context information and prefetch decision to generate highly accurate, timely, and systemaware prefetch requests in the future. Our extensive evaluations using simulation and hardware synthesis show that Pythia outperforms two state-of-the-art prefetchers (MLOP and Bingo) by 3.4% and 3.8% in single-core, 7.7% and 9.6% in twelve-core, and 16.9% and 20.2% in bandwidth-constrained core configurations, while incurring only 1.03% area overhead over a desktop-class processor and no software changes in workloads. The source code of Pythia can be freely downloaded from https://github.com/CMU-SAFARI/Pythia.
Motivation: Identifying sequence similarity is a fundamental step in genomic analyses, which is typically performed by first matching short subsequences of each genomic sequence, called seeds, and then verifying the similarity between sequences with sufficient number of matching seeds. The length and number of seed matches between sequences directly impact the accuracy and performance of identifying sequence similarity. Existing attempts optimizing seed matches suffer from performing either 1) the costly similarity verification for too many sequence pairs due to finding a large number of exact-matching seeds or 2) costly calculations to find fewer fuzzy (i.e., approximate) seed matches. Our goal is to efficiently find fuzzy seed matches to improve the performance, memory efficiency, and accuracy of identifying sequence similarity. To this end, we introduce BLEND, a fast, memory-efficient, and accurate mechanism to find fuzzy seed matches. BLEND 1) generates hash values for seeds so that similar seeds may have the same hash value, and 2) uses these hash values to efficiently find fuzzy seed matches between sequences. Results: We show the benefits of BLEND when used in two important genomics applications: finding overlapping reads and read mapping. For finding overlapping reads, BLEND enables a 0.9×-22.4× (on average 8.6×) faster and 1.8×-6.9× (on average 5.43×) more memory-efficient implementation than the state-of-the-art tool, Minimap2. We observe that BLEND finds better quality overlaps that lead to more accurate de novo assemblies compared to Minimap2. When mapping high coverage and accurate long reads, BLEND on average provides 1.2× speedup compared to Minimap2.
Generating the hash values of short subsequences, called seeds, enables quickly identifying similarities between genomic sequences by matching seeds with a single lookup of their hash values. However, these hash values can be used only for finding exact-matching seeds as the conventional hashing methods assign distinct hash values for different seeds, including highly similar seeds. Finding only exact-matching seeds causes either 1) increasing the use of the costly sequence alignment or 2) limited sensitivity. We introduce BLEND, the first efficient and accurate mechanism that can identify both exact-matching and highly similar seeds with a single lookup of their hash values, called fuzzy seeds matches. BLEND 1) utilizes a technique called SimHash, that can generate the same hash value for similar sets, and 2) provides the proper mechanisms for using seeds as sets with the SimHash technique to find fuzzy seed matches efficiently. We show the benefits of BLEND when used in read overlapping and read mapping. For read overlapping, BLEND is faster by 2.4x-83.9x (on average 19.3x), has a lower memory footprint by 0.9x-14.1x (on average 3.8x), and finds higher quality overlaps leading to accurate de novo assemblies than the state-of-the-art tool, minimap2. For read mapping, BLEND is faster by 0.8x-4.1x (on average 1.7x) than minimap2. Source code is available at https://github.com/CMU-SAFARI/BLEND.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.