NVBIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Typedefs | Functions | Variables
batched_inl.h File Reference
#include <nvbio/alignment/utils.h>
#include <nvbio/alignment/batched_stream.h>
#include <nvbio/basic/types.h>
#include <nvbio/basic/thrust_view.h>
#include <nvbio/basic/cuda/work_queue.h>
#include <nvbio/basic/strided_iterator.h>
#include <nvbio/basic/vector.h>
#include <nvbio/strings/prefetcher.h>

Go to the source code of this file.

Classes

struct  nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >
 
struct  nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >
 
struct  nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >
 
struct  nvbio::aln::BatchedAlignmentScore< stream_type, DeviceStagedThreadScheduler >
 
struct  nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >
 
struct  nvbio::aln::priv::AlignmentStream< t_aligner_type, pattern_set_type, qualities_set_type, text_set_type, sink_iterator >
 
struct  nvbio::aln::priv::AlignmentStream< t_aligner_type, pattern_set_type, qualities_set_type, text_set_type, sink_iterator >::context_type
 
struct  nvbio::aln::priv::AlignmentStream< t_aligner_type, pattern_set_type, qualities_set_type, text_set_type, sink_iterator >::strings_type
 

Namespaces

 nvbio
 Define a vector_view POD type and plain_view() for std::vector.
 
 nvbio::aln
 
 nvbio::aln::priv
 

Typedefs

typedef strided_iterator
< cell_type * > 
nvbio::aln::column_type
 

Functions

template<typename stream_type , typename column_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
nvbio::aln::batched_alignment_score (stream_type &stream, column_type column, const uint32 work_id, const uint32 thread_id)
 
template<uint32 BLOCKDIM, uint32 MINBLOCKS, uint32 COLUMN_SIZE, typename stream_type , typename cell_type >
__global__ void nvbio::aln::__launch_bounds__ (BLOCKDIM, MINBLOCKS) lmem_batched_alignment_score_kernel(stream_type stream
 
 nvbio::aln::if (tid >=stream.size()) return
 
 nvbio::aln::batched_alignment_score (stream, column, tid, tid)
 
template<uint32 BLOCKDIM, uint32 MINBLOCKS, uint32 BAND_LEN, typename stream_type >
__global__ void nvbio::aln::__launch_bounds__ (BLOCKDIM, MINBLOCKS) batched_banded_alignment_score_kernel(const stream_type stream)
 
 nvbio::aln::for (uint32 stream_begin=0;stream_begin< stream_end;stream_begin+=grid_threads)
 
template<uint32 BLOCKDIM, typename stream_type , typename cell_type >
NVBIO_FORCEINLINE NVBIO_DEVICE void nvbio::aln::warp_batched_alignment_score (stream_type &stream, cell_type *columns, const uint32 stride, const uint32 work_id, const uint32 warp_id)
 
template<uint32 BLOCKDIM, typename stream_type , typename cell_type >
__global__ void nvbio::aln::warp_batched_alignment_score_kernel (stream_type stream, cell_type *columns, const uint32 stride)
 
template<uint32 BLOCKDIM, typename stream_type , typename cell_type >
__global__ void nvbio::aln::warp_persistent_batched_alignment_score_kernel (stream_type stream, cell_type *columns, const uint32 stride)
 
template<uint32 CHECKPOINTS, typename stream_type , typename cell_type >
NVBIO_FORCEINLINE
NVBIO_HOST_DEVICE void 
nvbio::aln::batched_alignment_traceback (stream_type &stream, cell_type *checkpoints, uint32 *submatrices, cell_type *columns, const uint32 stride, const uint32 work_id, const uint32 thread_id)
 
 nvbio::aln::batched_alignment_traceback< CHECKPOINTS > (stream, checkpoints, submatrices, columns, stride, tid, tid)
 
template<typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length=1000, const uint32 max_text_length=1000)
 
template<typename aligner_type , typename pattern_set_type , typename qualities_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const qualities_set_type quals, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length=1000, const uint32 max_text_length=1000)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_banded_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length, const uint32 max_text_length)
 

Variables

__global__ void cell_type * nvbio::aln::columns
 
__global__ void cell_type
const uint32 
nvbio::aln::stride
 
cell_type nvbio::aln::column [COLUMN_SIZE] = column_type( columns + tid, stride )
 
const uint32 nvbio::aln::thread_id = threadIdx.x + blockIdx.x*BLOCKDIM
 
const uint32 nvbio::aln::stream_end = stream.size()
 
__global__ void cell_type * nvbio::aln::checkpoints
 
__global__ void cell_type uint32 * nvbio::aln::submatrices