{"id":"https://openalex.org/W7202170752","doi":"https://doi.org/10.48550/arxiv.2608.08740","title":"Memory-Efficient Activation Checkpointing with Sliding Window and Hirschberg's Algorithm for 0/1 Knapsack Solving in PyTorch","display_name":"Memory-Efficient Activation Checkpointing with Sliding Window and Hirschberg's Algorithm for 0/1 Knapsack Solving in PyTorch","publication_year":2026,"publication_date":"2026-08-09","ids":{"openalex":"https://openalex.org/W7202170752","doi":"https://doi.org/10.48550/arxiv.2608.08740"},"language":null,"primary_location":{"id":"pmh:oai:arXiv.org:2608.08740","doi":null,"is_oa":true,"landing_page_url":"https://arxiv.org/abs/2608.08740","pdf_url":"https://arxiv.org/pdf/2608.08740","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},"volume":null,"type":"preprint","indexed_in":["arxiv","datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://arxiv.org/pdf/2608.08740","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5133872633","display_name":"J\u0119drzej Pawe\u0142 Maczan","orcid":"https://orcid.org/0000-0003-1741-6064","observed_orcids":["https://orcid.org/0000-0003-1741-6064"]},"institutions":[{"id":"https://openalex.org/I4401726847","display_name":"Cohere (Canada)","ror":"https://ror.org/050yr0479","country_code":null,"type":"company","lineage":["https://openalex.org/I4401726847"]}],"countries":[],"is_corresponding":true,"raw_author_name":"Maczan, J\u0119drzej","raw_affiliation_strings":["Cohere Labs Community Poland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Cohere Labs Community Poland","institution_ids":["https://openalex.org/I4401726847"]}]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5133872633"],"corresponding_institution_ids":["https://openalex.org/I4401726847"],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.7294999957084656,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.7294999957084656,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10036","display_name":"Advanced Neural Network Applications","score":0.09139999747276306,"subfield":{"id":"https://openalex.org/subfields/1707","display_name":"Computer Vision and Pattern Recognition"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10720","display_name":"Complexity and Algorithms in Graphs","score":0.0284000001847744,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/0-1-knapsack-problem","display_name":"0-1 knapsack problem","score":0.8960000276565552},{"id":"https://openalex.org/keywords/dynamic-programming","display_name":"dynamic programming","score":0.6899999976158142},{"id":"https://openalex.org/keywords/sliding-window","display_name":"sliding window","score":0.8989999890327454},{"id":"https://openalex.org/keywords/pytorch","display_name":"PyTorch","score":0.9089999794960022},{"id":"https://openalex.org/keywords/memory-budget","display_name":"memory budget","score":0.6330000162124634}],"concepts":[{"id":"https://openalex.org/C113138325","wikidata":"https://www.wikidata.org/wiki/Q864457","display_name":"Knapsack problem","level":2,"score":0.8471999764442444},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7986999750137329},{"id":"https://openalex.org/C37404715","wikidata":"https://www.wikidata.org/wiki/Q380679","display_name":"Dynamic programming","level":2,"score":0.6370000243186951},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.6281999945640564},{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.6075999736785889},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.5651999711990356},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5483999848365784},{"id":"https://openalex.org/C102392041","wikidata":"https://www.wikidata.org/wiki/Q592860","display_name":"Sliding window protocol","level":3,"score":0.460999995470047},{"id":"https://openalex.org/C2778751112","wikidata":"https://www.wikidata.org/wiki/Q835016","display_name":"Window (computing)","level":2,"score":0.42579999566078186},{"id":"https://openalex.org/C206729178","wikidata":"https://www.wikidata.org/wiki/Q2271896","display_name":"Scheduling (production processes)","level":2,"score":0.40450000762939453},{"id":"https://openalex.org/C50644808","wikidata":"https://www.wikidata.org/wiki/Q192776","display_name":"Artificial neural network","level":2,"score":0.39649999141693115},{"id":"https://openalex.org/C82687282","wikidata":"https://www.wikidata.org/wiki/Q66221","display_name":"Auxiliary memory","level":2,"score":0.3610999882221222},{"id":"https://openalex.org/C132525143","wikidata":"https://www.wikidata.org/wiki/Q141488","display_name":"Graph","level":2,"score":0.33959999680519104},{"id":"https://openalex.org/C94569963","wikidata":"https://www.wikidata.org/wiki/Q5165487","display_name":"Continuous knapsack problem","level":3,"score":0.31459999084472656},{"id":"https://openalex.org/C311688","wikidata":"https://www.wikidata.org/wiki/Q2393193","display_name":"Time complexity","level":2,"score":0.31220000982284546},{"id":"https://openalex.org/C45235069","wikidata":"https://www.wikidata.org/wiki/Q278425","display_name":"Table (database)","level":2,"score":0.31200000643730164},{"id":"https://openalex.org/C176649486","wikidata":"https://www.wikidata.org/wiki/Q2308807","display_name":"Memory management","level":3,"score":0.2996000051498413},{"id":"https://openalex.org/C17722475","wikidata":"https://www.wikidata.org/wiki/Q3406279","display_name":"Change-making problem","level":4,"score":0.2939000129699707},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.28439998626708984},{"id":"https://openalex.org/C134835016","wikidata":"https://www.wikidata.org/wiki/Q690265","display_name":"Lookup table","level":2,"score":0.26100000739097595},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.25780001282691956},{"id":"https://openalex.org/C99140742","wikidata":"https://www.wikidata.org/wiki/Q843550","display_name":"Polynomial-time approximation scheme","level":3,"score":0.2556000053882599},{"id":"https://openalex.org/C179799912","wikidata":"https://www.wikidata.org/wiki/Q205084","display_name":"Computational complexity theory","level":2,"score":0.2542000114917755}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:arXiv.org:2608.08740","doi":null,"is_oa":true,"landing_page_url":"https://arxiv.org/abs/2608.08740","pdf_url":"https://arxiv.org/pdf/2608.08740","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},{"id":"doi:10.48550/arxiv.2608.08740","doi":"https://doi.org/10.48550/arxiv.2608.08740","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.2608.08740","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"Preprint"}],"best_oa_location":{"id":"pmh:oai:arXiv.org:2608.08740","doi":null,"is_oa":true,"landing_page_url":"https://arxiv.org/abs/2608.08740","pdf_url":"https://arxiv.org/pdf/2608.08740","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},"sustainable_development_goals":[],"sustainable_development_goals_aurora":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W7202170752.pdf","grobid_xml":"https://content.openalex.org/works/W7202170752.grobid-xml"},"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"Activation":[0],"checkpointing":[1],"minimizes":[2],"the":[3,71,78,108,125],"runtime":[4,49,161],"of":[5,63,73],"neural":[6],"networks":[7],"under":[8],"a":[9,28,35,43,48,57,94,146,158],"given":[10],"memory":[11,44,80,118],"budget,":[12],"by":[13],"selecting":[14],"which":[15,21,106],"intermediate":[16],"tensors":[17],"to":[18,22,115,121],"store":[19],"and":[20,47,75,86,112,171],"recompute.":[23],"PyTorch":[24,170],"solves":[25],"this":[26,101],"as":[27],"0/1":[29],"knapsack":[30,133],"problem,":[31],"where":[32,68,139],"operations":[33,74],"from":[34,119],"joint":[36],"forward-backward":[37],"computation":[38],"graph":[39],"are":[40],"items":[41,92],"with":[42,96],"cost":[45],"(weight)":[46],"saving":[50],"(value).":[51],"The":[52,165],"default":[53],"solver,":[54],"dp_knapsack,":[55],"allocates":[56],"full":[58],"dynamic":[59],"programming":[60],"(DP)":[61],"table":[62],"shape":[64],"$(n+1)":[65],"\\times":[66],"(W+1)$,":[67],"$n$":[69],"is":[70,77,84,167],"number":[72],"$W$":[76],"quantized":[79],"budget.":[81],"This":[82],"method":[83],"resource-hungry":[85],"crashes":[87],"at":[88,135,142],"$n":[89,136,143],"=":[90,137,144],"100$":[91],"on":[93],"machine":[95],"64":[97],"GB":[98],"RAM.":[99],"In":[100,153],"paper,":[102],"we":[103],"introduce":[104],"dp_knapsack_sliding_hirschberg,":[105],"combines":[107],"sliding":[109],"window":[110],"trick":[111],"Hirschberg's":[113],"algorithm":[114],"reduce":[116],"peak":[117],"$O(nW)$":[120],"$O(W)$":[122],"while":[123],"preserving":[124],"exact":[126],"optimal":[127],"solution.":[128],"Our":[129],"experiments":[130],"show":[131,157],"successful":[132],"execution":[134],"2000$,":[138],"dp_knapsack":[140],"fails":[141],"100$,":[145],"20$\\times$":[147],"increase":[148],"in":[149,173],"computable":[150],"problem":[151],"size.":[152],"addition,":[154],"our":[155],"benchmarks":[156],"consistent":[159],"25-28\\%":[160],"speedup":[162],"over":[163],"dp_knapsack.":[164],"implementation":[166],"merged":[168],"into":[169],"released":[172],"version":[174],"2.10.":[175]},"counts_by_year":[],"updated_date":"2026-10-12T09:40:04.860316","created_date":"2026-08-12T00:00:00"}
