{"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/arxiv-2607-05095","title":"FAST: A Holistic Framework for Optimizing Memory-I/O, Computation, and Sampling in Temporal GNN Training","arxiv_id":"2607.05095","date":"2026-07-06","proceeding":null,"authors":["Yushu Cai","Qingrui Zhu","Lei Liu","Kai Sheng","Hao Chen","Xin He"],"abstract":"Temporal Graph Neural Networks (TGNNs) are widely used for learning from dynamic graphs in applications such as recommendation, social network analysis, and traffic forecasting. However, scaling TGNN training to large dynamic graphs remains challenging due to three intertwined bottlenecks: memory I/O, irregular computation, and temporal neighbor sampling. Existing systems often optimize these stages in isolation, leaving substantial performance headroom on the table. We present FAST, a holistic framework that accelerates end-to-end TGNN training by jointly optimizing sampling, memory I/O, and computation. FAST introduces SlimCache, which exploits within-batch compression and cross-batch caching to reduce host-device data movement under limited GPU memory budgets. It further designs thread-efficient graph operators tailored to sparse temporal subgraphs, improving GPU cache locality and reducing the latency of aggregation and edge softmax. In addition, FAST employs a topology-aware sampling strategy that improves CPU cache locality and accelerates temporal neighbor sampling. Extensive experiments on real-world large dynamic graphs show that FAST achieves an average of 2.1x (up to 4.7x) speedup over state-of-the-art systems without sacrificing model accuracy.","url_abs":"https://arxiv.org/abs/2607.05095","url_pdf":"https://arxiv.org/pdf/2607.05095","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2607.05095","atlas_url":"https://app.syntology.ai/?focus=2607.05095","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2607.05095"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/NoneBone/FAST","reach":null}],"summary":{"ran":9},"by_repo_kind":{"found_in_text":{"samples":9,"ran":9,"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":9,"samples":[{"code_sha256_prefix":"9e56ac860053c7d8","entry":"PRINT_PEAK_MEM","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"fast_util/helper.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/fast_util/helper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9e56ac860053c7d8"}},{"code_sha256_prefix":"ad79e9f3511a7be4","entry":"calculate_similarity","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"fast_util/topologyAware.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/fast_util/topologyAware.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ad79e9f3511a7be4"}},{"code_sha256_prefix":"f5ca7832bd9e3f3d","entry":"generate_cpu_bind_mode","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"fast_util/topologyAware.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/fast_util/topologyAware.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f5ca7832bd9e3f3d"}},{"code_sha256_prefix":"49cdb905e40b7c8d","entry":"getBlossomBindMode","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"fast_util/topologyAware.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/fast_util/topologyAware.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"49cdb905e40b7c8d"}},{"code_sha256_prefix":"eec25ad0af035d22","entry":"get_num","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"fast_util/slimCache.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/fast_util/slimCache.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eec25ad0af035d22"}},{"code_sha256_prefix":"bffbe42c7216ef02","entry":"load_feat","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"utils.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bffbe42c7216ef02"}},{"code_sha256_prefix":"30b343adb02308b6","entry":"load_graph","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"utils.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"30b343adb02308b6"}},{"code_sha256_prefix":"51380d0936db4a6e","entry":"maxinumCacheHitRate","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"fast_util/slimCache.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/fast_util/slimCache.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"51380d0936db4a6e"}},{"code_sha256_prefix":"d8d0029e25bbd770","entry":"parse_config","repo":"NoneBone/FAST","repo_kind":"found_in_text","path":"utils.py","file_url":"https://github.com/NoneBone/FAST/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d8d0029e25bbd770"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,885 of the 9,623 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9623,"papers_checked":6885},"entries":[],"not_placed":{"boards":1,"rejected_by_independent_check":1,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}