def main(): import sys if len(sys.argv) <= 1: print "Usage: example1.py file1.fil [file2.fil ...]" sys.exit(-1) filenames = sys.argv[1:] h_filterbank = read_sigproc(filenames, gulp_nframe=16000, core=0) h_filterbank = scrunch(h_filterbank, 16, core=0) d_filterbank = copy(h_filterbank, space='cuda', gpu=0, core=2) with bfp.block_scope(core=2, gpu=0): d_filterbankT = transpose( d_filterbank, ['polarisation', 'frequency', 'time']) #[1,2,0]) d_dispersionbankT = fdmt(d_filterbankT, max_dm=282.52) d_dispersionbank = transpose( d_dispersionbankT, ['time', 'polarisation', 'dispersion measure']) #[2,0,1]) h_dispersionbank = copy(d_dispersionbank, space='system', core=3) write_pgm(h_dispersionbank, core=3) pipeline = bfp.get_default_pipeline() graph_filename = "example1.dot" with open(graph_filename, 'w') as dotfile: dotfile.write(str(pipeline.dot_graph())) print "Wrote graph definition to", graph_filename pipeline.run() print "All done"
def test_read_write(self): """Read from a binary file, then write to another one""" b_read = blocks.binary_read(self.filenames, 32768, 1, 'f32') b_write = blocks.binary_write(b_read) # Run pipeline pipeline = bfp.get_default_pipeline() pipeline.run() # Check the output files match the input files outdata0 = np.fromfile('numpy_data0.bin.out', dtype='float32') outdata1 = np.fromfile('numpy_data1.bin.out', dtype='float32') np.testing.assert_almost_equal(self.s0, outdata0) np.testing.assert_almost_equal(self.s1, outdata1)
def main(args): h_filterbank = read_sigproc(args.filename, gulp_nframe=16000, core=0) h_filterbank = scrunch(h_filterbank, 16, core=0) d_filterbank = copy(h_filterbank, space='cuda', gpu=0, core=2) blocks.print_header(d_filterbank) with bfp.block_scope(core=2, gpu=0): d_filterbankT = transpose(d_filterbank, ['pol', 'freq', 'time']) #[1,2,0]) d_dispersionbankT = fdmt(d_filterbankT, max_dm=282.52) blocks.print_header(d_dispersionbankT) d_dispersionbank = transpose(d_dispersionbankT, ['time', 'pol', 'dispersion']) #[2,0,1]) h_dispersionbank = copy(d_dispersionbank, space='system', core=3) write_pgm(h_dispersionbank, core=3) pipeline = bfp.get_default_pipeline() graph_filename = "example1.dot" with open(graph_filename, 'w') as dotfile: dotfile.write(str(pipeline.dot_graph())) print("Wrote graph definition to", graph_filename) pipeline.run() print("All done")
""" import os import numpy as np import bifrost.pipeline as bfp from bifrost.blocks import BinaryFileReadBlock, BinaryFileWriteBlock import glob if __name__ == "__main__": # Setup pipeline filenames = sorted(glob.glob('testdata/sin_data*.bin')) b_read = BinaryFileReadBlock(filenames, 32768, 1, 'f32') b_write = BinaryFileWriteBlock(b_read) # Run pipeline pipeline = bfp.get_default_pipeline() print pipeline.dot_graph() pipeline.run() # Check the output files match the input files for filename in filenames: try: print filename indata = np.fromfile(filename, dtype='float32') outdata = np.fromfile('%s.out' % filename, dtype='float32') assert np.allclose(indata, outdata) print " Input data and output data match." except AssertionError: print " Error: input and output data do not match." raise finally: