_ _________ _____(_)_________/ ____/ | / ___/ / ___/ ___/ /_ / /| | / /__/ / / / /__/ __/ / ___ | \___/_/_/ \___/_/ /_/ |_|
Team number: xohw-400
Project name: circFA
Version of uploaded archive:1
University name: Politecnico di Milano
Supervisor name: Marco Domenico Santambrogio
Supervisor e-mail: firstname.lastname@example.org
Participant: Alberto Zeni
Participant: Francesco Peverelli
Participant: Enrico Cabri
Board used: xilinx:aws-vu9p-f1:4ddr-xpr-2pr:4.0
SDAccel Version: 2017.1.op
CircFA is an hardware acceleration of a circular RNA aligner. Circular RNAs are a widespread type of RNA in our genome that have been recently discovered to be correlated with many types of carcinogenesis and central neural system pathologies. Their identification on patients can be therefore very useful for specific diagnosis. Our solution implements the most intensive task of the circular RNA identification on genome, which is the alignment process, on FPGA. The proposed project achieves a speedup of 1,46x for the alignment process over software.
The binary file of the kernel exceeded the maximum dimension of the zip file (>100MB)
therefore it has been uploaded on google drive, the link is listed below.
The doc directory contains circFA_report.pdf which is the report of our project.
The file alignment_sw_reference.cpp contains the reference version of the alignment algorithm in software.
The file kernelAdaptive.cpp is the source file for the kernel.
The file maincl.cpp contains the source file for the host.
The file kseq.h is a library necessary to compile the host.
The host_circFA file is the binary of the host file.
Instructions to build and test project
Go in the project directory and type in the terminal
to source SDAccel .
To run a software emulation, type in the terminal:
make emulation TARGET=sw_emu
To run an hardware emulation, type in the terminal:
make emulation TARGET=hw_emu
To compile the kernel and generate the bitstream, type in the terminal:
make xclbin TARGET=hw
The bitstream will be inside the hw folder.
To compile the host, type in the terminal:
make host TARGET=hw
The host willl be inside the hw folder.
In order to run the kernel the creation of an F1 instance is needed, a complete guide for that can be found here:
For this project we used an f1.2xlarge instance.
When both host and the kernel bitstream for AWS have been generated, in order to run the kernel on FPGA type on terminal
./host_circFA kernel.awsxclbin ref.fasta query.fasta
Where ref.fasta and query.fasta are the two files that will be generated by the host and that will be alligned. Each files will contain a sequence of 3024 characters that will be alligned in order to test the maximum limit of our application.