GPU version diamond

Hello,

May I ask if diamond support GPU? I saw the related paper but I cannot figure it out. May I ask how to install this GPU version diamond if available? If a specific liscense is required, can anyone provide the clues that how I can purchase or get the liscense and install the specific version?

Thanks a lot.

Hi @Ming,

To my knowledge, there isn’t a GPU version of DIAMOND, as it’s already highly optimized for CPU use. Could you share the link to the paper where you read about this? It’s possible they may have modified the DIAMOND code to enable GPU compatibility, though I have some doubts about that.

Best regards,
Anupam

Hello, @Anupam
Thanks for the response. You are right, I think I misunderstood the paper that actually there isn’t a GPU version of DIAMOND.
DIAMOND+MEGAN: Fast and Easy Taxonomic and Functional Analysis of Short and Long Microbiome Sequences - Bağcı - 2021 - Current Protocols - Wiley Online Library
However, when I followed this paper to use DIAMOND for long read alignment, it takes a while. Specifically, when I run the command diamond blastx -q consensus.fasta -d nr.dmnd -o SRR8305972_unicycler.daa -F 15 -f 100 --range-culling --top 10 -p (threads), it took 16 hours to get it done.
To your experiences, is it normal?
Thanks for your assistance.
Best,
Jiaming

Hi @Ming,

The processing time looks reasonable, given that you’re using the long-read parameters -F 15 -f 100 --range-culling --top 10. Since long reads can contain multiple genes per read, this is expected. Also, the NR database is continually growing, which can contribute to longer processing times.

To speed things up, you can try using a higher block size (-b 12) and setting the chunk parameter to -c 1. Keep in mind that increasing the block size will significantly increase memory usage, as this parameter primarily controls memory and disk space requirements. With -b 12, you should expect memory usage of roughly six times the block size in GB—around 150 GB in this case.

The chunk parameter (-c) affects how the seed index is processed. The default value is -c 4, but setting it to -c 1 can improve performance at the cost of even higher memory use. Note that the very-sensitive and ultra-sensitive modes automatically set -c 1 for this reason. If you have sufficient resources, these adjustments can enhance performance.

Best regards,
Anupam