{"id":13752622,"url":"https://github.com/schrodinger/gpusimilarity","last_synced_at":"2026-03-04T19:02:23.657Z","repository":{"id":71005481,"uuid":"133416052","full_name":"schrodinger/gpusimilarity","owner":"schrodinger","description":"A Cuda/Thrust implementation of fingerprint similarity searching","archived":false,"fork":false,"pushed_at":"2024-01-24T19:08:08.000Z","size":490,"stargazers_count":105,"open_issues_count":7,"forks_count":26,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-05-09T20:51:14.524Z","etag":null,"topics":["cheminformatics","chemistry","gpu","similarity-analysis"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schrodinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-05-14T20:13:19.000Z","updated_at":"2025-04-14T17:49:48.000Z","dependencies_parsed_at":"2023-07-29T03:01:10.409Z","dependency_job_id":null,"html_url":"https://github.com/schrodinger/gpusimilarity","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/schrodinger/gpusimilarity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schrodinger%2Fgpusimilarity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schrodinger%2Fgpusimilarity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schrodinger%2Fgpusimilarity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schrodinger%2Fgpusimilarity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schrodinger","download_url":"https://codeload.github.com/schrodinger/gpusimilarity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schrodinger%2Fgpusimilarity/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262497245,"owners_count":23320294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cheminformatics","chemistry","gpu","similarity-analysis"],"created_at":"2024-08-03T09:01:08.430Z","updated_at":"2026-03-04T19:02:23.596Z","avatar_url":"https://github.com/schrodinger.png","language":"C++","funding_links":[],"categories":["Ranked by starred repositories"],"sub_categories":[],"readme":"# gpusimilarity\n\nA brute-force GPU implementation of chemical fingerprint similarity searching.  Its intended use is to be kept alive as a service with an entire library loaded into graphics card memory.  It has python scripts included which use RDKit to generate fingerprints, but the C++/Cuda backend are agnostic to the data once it's been created.\n\nArchitecture and benchmarks were presented in [a presentation at the 2018 RDKit European UGM](gpusimilarity_rdkit_presentation.pdf).\n\n## Incentive Version\n\nThe commercial GPUSimilarity product (\"FPSim GPU\") with additional enhancements, maintenance and support is available from [Schrödinger](https://www.schrodinger.com).  Enhancements to the incentive version will be periodically merged into the open source version, similar to Incentive PyMOL.\n\n## Basic Benchmark\n\nOn a machine with four Tesla V100, searching one billion compounds takes ~0.2 seconds.\n\nSee [RDKit Presentation](gpusimilarity_rdkit_presentation.pdf) for much more in depth benchmarks (that are slightly out of date).\n\n## Example integration\n\nHere is a video of this backend being utilized for immediate-response searching inside Schrödinger's LiveDesign application:\n\n[![GPUSimilarity Gadget](http://img.youtube.com/vi/DZhknAXXEo4/0.jpg)](https://www.youtube.com/watch?v=T11UXEoF_rk)\n\n## Using GPUSimilarity\n**It is highly recommended that you use docker for building/running.**\n\nSee [Our Docker Readme](docker/)\n\n## Dependencies for Building (recommended only for development)\n* RDKit (At Python level, not compilation)\n* Qt 5.2+ (including QtNetwork)\n* PyQt\n* Cuda SDK, CUDACXX env variable pointing to nvcc\n* cmake 3.10.2+\n* C++11 capable compiler\n* Boost test libraries\n* Optional: Doxygen for generating documents\n\n## Building with CMake and running unit tests with CTest\n**Recommended only for development, see Docker**\n```\nFrom parent directory of source:\nmkdir bld\ncd bld\nccmake ../gpusimilarity\nmake -j5\nctest\n```\nIf Cuda, boost or doxygen are not found, start ccmake with the following\noptions:\n```\nccmake -DCMAKE_CUDA_COMPILER=/path/to/nvcc -DBOOST_ROOT=/path/to/boost/directory -DDOXYGEN_EXECUTABLE=/path/to/doxygen\n```\n### Generate the documentation\nInstall doxygen on system\n```\nmake doc_doxygen\n```\nThe result is in bld/doc/html\n\n## Running\n**Recommended only for development, see Docker**\n### For basic json-response http endpoint:\nFrom build directory:\n`python3 ${SRC_DIR}/python/gpusim_server.py \u003cfingerprint fsim file\u003e`\n\n### For testing (insecure):\nFrom build directory:\n`python3 ${SRC_DIR}/python/gpusim_server.py \u003cfingerprint fsim file\u003e --http_interface`\n\n### For generating databases:\nEasiest from rdkit conda with pyqt installed:\n\nFrom source python directory:\n```python3 gpusim_createdb.py \u003cinput smi.gz file\u003e \u003cfingerprint fsim file\u003e```\n\n### For debugging Cuda server, avoiding python/http server altogether:\n```bash\nFrom build directory:\n./gpusimserver \u003cdbname\u003e.fsim\npython3 python ${SRC_DIR}/python/gpusim_search.py \u003cdbname\u003e\n```\nNote:  No .fsim extension is used for gpusim_search.py\n\nThis may be useful to determine if the backend is having Cuda/GPU problems.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschrodinger%2Fgpusimilarity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschrodinger%2Fgpusimilarity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschrodinger%2Fgpusimilarity/lists"}