{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/190503748","title":"Arbitrarily large iterative tomographic reconstruction on multiple GPUs using the TIGRE toolbox","arxiv_id":"1905.03748","date":"2019-05-08","proceeding":null,"authors":["Ander Biguri","Reuben Lindroos","Robert Bryll","Hossein Towsyfyan","Hans Deyhle","Richard Boardman","Mark Mavrogordato","Manjit Dosanjh","Steven Hancock","Thomas Blumensath"],"abstract":"Tomographic image sizes keep increasing over time and while the GPUs that compute the tomographic reconstruction are also increasing in memory size, they are not doing so fast enough to reconstruct the largest datasets. This problem is often solved by reconstructing data in large clusters of GPUs with enough devices to fit the measured X-ray projections and reconstructed volume. Often this requires tens of GPUs, which is a very economically expensive solution. Access to single-node machines designed to reconstruct using just one or a few GPUs is more common in the field, but current software does not allow iterative reconstruction of volumes that do not fit in those GPUs. In this work, we propose a strategy to execute efficiently the required operations for iterative reconstruction for arbitrarily large images with any number of GPUs with arbitrarily small memories in a single node. Strategies for both the forward and backprojection operators are presented, along with two regularization approaches that are easily generalized to other projection types or regularizers. The proposed improvement also accelerates reconstruction of smaller images on single or multiple GPUs, providing faster code for time-critical medical applications. The resulting algorithm has been added to the TIGRE toolbox, a repository for iterative reconstruction algorithms for general CT, but this memory-saving and problem-splitting strategy can be easily adapted for any other GPU-based CT code.","url_abs":"http://arxiv.org/abs/1905.03748v1","url_pdf":"http://arxiv.org/pdf/1905.03748v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"190503748","repo_url":"https://github.com/CERN/TIGRE","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.03748","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.03748"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/CERN/TIGRE","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":2},"by_repo_kind":{"official":{"samples":2,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"98f4ac4738b4ba76","entry":"Ax","repo":"CERN/TIGRE","repo_kind":"official","path":"Python/tigre/utilities/Ax.py","file_url":"https://github.com/CERN/TIGRE/blob/HEAD/Python/tigre/utilities/Ax.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"98f4ac4738b4ba76"}},{"code_sha256_prefix":"48e4488a27b7c9cd","entry":"Measure_Quality","repo":"CERN/TIGRE","repo_kind":"official","path":"Python/tigre/utilities/Measure_Quality.py","file_url":"https://github.com/CERN/TIGRE/blob/HEAD/Python/tigre/utilities/Measure_Quality.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"48e4488a27b7c9cd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}