Solving Dynamic Programming Problem by Pipeline Implementation on GPU
In this paper, we show the effectiveness of a pipeline implementation of Dynamic Programming (DP) on GPU. As an example, we explain how to solve a matrix-chain multiplication (MCM) problem by DP on GPU. This problem can be sequentially solved in \(O(n^3)\) steps by DP where \(n\) is the number of ma...
Saved in:
| Published in: | arXiv.org |
|---|---|
| Main Authors: | , |
| Format: | Paper |
| Language: | English |
| Published: |
Ithaca
Cornell University Library, arXiv.org
05.08.2020
|
| Subjects: | |
| ISSN: | 2331-8422 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | In this paper, we show the effectiveness of a pipeline implementation of Dynamic Programming (DP) on GPU. As an example, we explain how to solve a matrix-chain multiplication (MCM) problem by DP on GPU. This problem can be sequentially solved in \(O(n^3)\) steps by DP where \(n\) is the number of matrices, because its solution table is of size \(n \times n\) and each element of the table can be computed in \(O(n)\) steps. A typical speedup strategy for this is to parallelize the \(O(n)\) step computation of each element, which can be easily achieved by parallel prefix computation, i.e., an \(O(\log n)\) step computation with \(n\) threads in a tournament fashion. By such a standard parallelizing method, we can solve the MCM problem in \(O(n^2 \log n)\) steps with \(n\) threads. In our approach, we solve the MCM problem on GPU in a pipeline fashion, i.e., we use GPU cores for supporting pipeline-stages so that many elements of the solution table are partially computed in parallel at one time. Our implementation determines one output value per one computational step with \(n\) threads in a pipeline fashion and constructs the solution table totally in \(O(n^2)\) steps with \(n\) threads. |
|---|---|
| AbstractList | In this paper, we show the effectiveness of a pipeline implementation of Dynamic Programming (DP) on GPU. As an example, we explain how to solve a matrix-chain multiplication (MCM) problem by DP on GPU. This problem can be sequentially solved in \(O(n^3)\) steps by DP where \(n\) is the number of matrices, because its solution table is of size \(n \times n\) and each element of the table can be computed in \(O(n)\) steps. A typical speedup strategy for this is to parallelize the \(O(n)\) step computation of each element, which can be easily achieved by parallel prefix computation, i.e., an \(O(\log n)\) step computation with \(n\) threads in a tournament fashion. By such a standard parallelizing method, we can solve the MCM problem in \(O(n^2 \log n)\) steps with \(n\) threads. In our approach, we solve the MCM problem on GPU in a pipeline fashion, i.e., we use GPU cores for supporting pipeline-stages so that many elements of the solution table are partially computed in parallel at one time. Our implementation determines one output value per one computational step with \(n\) threads in a pipeline fashion and constructs the solution table totally in \(O(n^2)\) steps with \(n\) threads. |
| Author | Miyazaki, Makoto Matsumae, Susumu |
| Author_xml | – sequence: 1 givenname: Susumu surname: Matsumae fullname: Matsumae, Susumu – sequence: 2 givenname: Makoto surname: Miyazaki fullname: Miyazaki, Makoto |
| BookMark | eNotjd1Kw0AUhBdRsNY-gHcLXiee_UvOXkqttVAwYL0um82mbEl2Y5IW-_ZGFAZm-Bhm7sh1iMER8sAglagUPJn-259TDoApMC3wisy4ECxByfktWQzDEQB4lnOlxIysPmJz9uFAXy7BtN7Soo-H3rTtL5ty2biWlhda-M41Pji6absJuTCa0cdAJ62Lz3tyU5tmcIt_n5Pd62q3fEu27-vN8nmbGMUhkRU4rqsSbWkQuUWprJY1clNnpXTCMaWmTlVpLfO6ZsyBzRByoZSxUmoxJ49_s10fv05uGPfHeOrD9LjnUgByhhmIH-7jTf0 |
| ContentType | Paper |
| Copyright | 2020. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License. |
| Copyright_xml | – notice: 2020. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License. |
| DBID | 8FE 8FG ABJCF ABUWG AFKRA AZQEC BENPR BGLVJ CCPQU DWQXO HCIFZ L6V M7S PHGZM PHGZT PIMPY PKEHL PQEST PQGLB PQQKQ PQUKI PRINS PTHSS |
| DOI | 10.48550/arxiv.2008.01938 |
| DatabaseName | ProQuest SciTech Collection ProQuest Technology Collection Materials Science & Engineering Collection ProQuest Central (Alumni) ProQuest Central UK/Ireland ProQuest Central Essentials ProQuest Central Technology Collection ProQuest One Community College ProQuest Central Korea SciTech Premium Collection ProQuest Engineering Collection Engineering Database ProQuest Central Premium ProQuest One Academic Publicly Available Content Database ProQuest One Academic Middle East (New) ProQuest One Academic Eastern Edition (DO NOT USE) ProQuest One Applied & Life Sciences ProQuest One Academic (retired) ProQuest One Academic UKI Edition ProQuest Central China Engineering Collection |
| DatabaseTitle | Publicly Available Content Database Engineering Database Technology Collection ProQuest One Academic Middle East (New) ProQuest Central Essentials ProQuest One Academic Eastern Edition ProQuest Central (Alumni Edition) SciTech Premium Collection ProQuest One Community College ProQuest Technology Collection ProQuest SciTech Collection ProQuest Central China ProQuest Central ProQuest One Applied & Life Sciences ProQuest Engineering Collection ProQuest One Academic UKI Edition ProQuest Central Korea Materials Science & Engineering Collection ProQuest Central (New) ProQuest One Academic ProQuest One Academic (New) Engineering Collection |
| DatabaseTitleList | Publicly Available Content Database |
| Database_xml | – sequence: 1 dbid: PIMPY name: Publicly Available Content Database url: http://search.proquest.com/publiccontent sourceTypes: Aggregation Database |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Physics |
| EISSN | 2331-8422 |
| Genre | Working Paper/Pre-Print |
| GroupedDBID | 8FE 8FG ABJCF ABUWG AFKRA ALMA_UNASSIGNED_HOLDINGS AZQEC BENPR BGLVJ CCPQU DWQXO FRJ HCIFZ L6V M7S M~E PHGZM PHGZT PIMPY PKEHL PQEST PQGLB PQQKQ PQUKI PRINS PTHSS |
| ID | FETCH-LOGICAL-a520-4d0e29db8cba882c845c94f82af6b4e3e1554d0dd9947ff11e0c6807355ac4493 |
| IEDL.DBID | M7S |
| IngestDate | Mon Jun 30 09:05:34 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a520-4d0e29db8cba882c845c94f82af6b4e3e1554d0dd9947ff11e0c6807355ac4493 |
| Notes | SourceType-Working Papers-1 ObjectType-Working Paper/Pre-Print-1 content type line 50 |
| OpenAccessLink | https://www.proquest.com/docview/2430821860?pq-origsite=%requestingapplication% |
| PQID | 2430821860 |
| PQPubID | 2050157 |
| ParticipantIDs | proquest_journals_2430821860 |
| PublicationCentury | 2000 |
| PublicationDate | 20200805 |
| PublicationDateYYYYMMDD | 2020-08-05 |
| PublicationDate_xml | – month: 08 year: 2020 text: 20200805 day: 05 |
| PublicationDecade | 2020 |
| PublicationPlace | Ithaca |
| PublicationPlace_xml | – name: Ithaca |
| PublicationTitle | arXiv.org |
| PublicationYear | 2020 |
| Publisher | Cornell University Library, arXiv.org |
| Publisher_xml | – name: Cornell University Library, arXiv.org |
| SSID | ssj0002672553 |
| Score | 1.7301302 |
| SecondaryResourceType | preprint |
| Snippet | In this paper, we show the effectiveness of a pipeline implementation of Dynamic Programming (DP) on GPU. As an example, we explain how to solve a matrix-chain... |
| SourceID | proquest |
| SourceType | Aggregation Database |
| SubjectTerms | Computation Dynamic programming Multiplication Parallel processing Pipelines |
| Title | Solving Dynamic Programming Problem by Pipeline Implementation on GPU |
| URI | https://www.proquest.com/docview/2430821860 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV3LS8MwGP_QTcGTb3zM0YPXsrRN2uQkqJt6cAQ3YZ5GmqQwcF1t59D_3iTt9CB4EXJJcgl5fK_8vu8HcMnSEMlQpz6JGPaNhkA-S3Tii5jiSBv9QZR0ZBPJcEgnE8abgFvVwCrXMtEJarWQNkbeC7EtrBLQGF0Vb75ljbK_qw2Fxia0bZWEwEH3Rt8xljBOjMUc1Z-ZrnRXT5Qfs1UDoTS2C_0lgp1eGez-d0V70Oai0OU-bOj8ALYdnlNWh9AfLV5tqMC7rRnnPV7jsOZ2jNckMl766fFZYRPSteeqBM-bRKTcM-2OPx_BeNAf39z7DWOCL4hxA7FCOmQqpTIVxnKWFBPJcEZDkcUp1pG2xoNCSjGGkywLAo1kTM0jJ0RIjFl0DK18kesT8FCUxooGKGNxZjw4KUxPK4lwZoQ7o_gUOutNmTa3vpr-7MjZ39PnsBNav9VCL0gHWsvyXV_AllwtZ1XZhfZ1f8ifuu4wTY8_PPKXL7FGqYY |
| linkProvider | ProQuest |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMw1V07T8MwELaqFgQTb_EokAHGqI7jJPaAGGhLq5YqUovULXJsR4pE05KUQn8U_xE7DxiQ2DogZUmyRDn7vrvzd_cBcENDBDmSoenYFJsKIaBJPemZzCXYlgo_HMFzsQlvNCLTKfVr4LPqhdG0yson5o5azLmukbcQ1oNVLOLC-8WrqVWj9OlqJaFRLIuBXL-rlC2767eVfW8R6nYmDz2zVBUwmaNSJSygRFSEhIdMRZecYIdTHBHEIjfE0pYaYAUUglLsRZFlSchdojaC4zCOsZ69pDx-Q0URiOZMwfF3SQe5ngrQ7eLsNJ8U1mLpR7wqGZsqVCK_PH4OY929f_YD9kHDZwuZHoCaTA7Bds5W5dkR6IznL7oQYrTXCZvF3PALltlMP_MLiRwjXBt-vNDt9tLIZyDPyjarxFDXo_98DCab-PATUE_miTwFBrRDVxALRtSNVH7KmbqTgkMcKeiiBJ-BZmWDoNzTWfBjgPO_X1-Dnd7kaRgM-6PBBdhFOkPXJBOnCerL9E1egi2-WsZZepWvHwMEGzbXFxv1Aa4 |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Solving+Dynamic+Programming+Problem+by+Pipeline+Implementation+on+GPU&rft.jtitle=arXiv.org&rft.au=Matsumae%2C+Susumu&rft.au=Miyazaki%2C+Makoto&rft.date=2020-08-05&rft.pub=Cornell+University+Library%2C+arXiv.org&rft.eissn=2331-8422&rft_id=info:doi/10.48550%2Farxiv.2008.01938 |