  Motivation: Seed filtering is critical in DNA read mapping, a process where
billions of DNA fragments (reads) sampled from a donor are mapped onto a
reference genome to identify genomic variants of the donor. Read mappers 1)
quickly generate possible mapping locations (i.e., seeds) for each read, 2)
extract reference sequences at each of the mapping locations, and then 3) check
similarity between each read and its associated reference sequences with a
computationally expensive dynamic programming algorithm (alignment) to
determine the origin of the read. Location filters come into play before
alignment, discarding seed locations that alignment would have deemed a poor
match. The ideal location filter would discard all poor matching locations
prior to alignment such that there is no wasted computation on poor alignments.
  Results: We propose a novel filtering algorithm, GRIM-Filter, optimized to
exploit emerging 3D-stacked memory systems that integrate computation within a
stacked logic layer, enabling processing-in-memory (PIM). GRIM-Filter quickly
filters locations by 1) introducing a new representation of coarse-grained
segments of the reference genome and 2) using massively-parallel in-memory
operations to identify read presence within each coarse-grained segment. Our
evaluations show that for 5% error acceptance rates, GRIM-Filter eliminates
5.59x-6.41x more false negatives and exhibits end-to-end speedups of
1.81x-3.65x compared to mappers employing the best previous filtering
algorithm.
