WO2012087988A3 - Loop parallelization based on loop splitting or index array - Google Patents
Loop parallelization based on loop splitting or index array Download PDFInfo
- Publication number
- WO2012087988A3 WO2012087988A3 PCT/US2011/065948 US2011065948W WO2012087988A3 WO 2012087988 A3 WO2012087988 A3 WO 2012087988A3 US 2011065948 W US2011065948 W US 2011065948W WO 2012087988 A3 WO2012087988 A3 WO 2012087988A3
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- loop
- index array
- splitting
- parallelization based
- parallelization
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Abstract
Methods and apparatus to provide loop parallelization based on loop splitting and/or index array are described. In one embodiment, one or more split loops, corresponding to an original loop, are generated based on the mis-speculation information. In another embodiment, a plurality of subloops are generated from an original loop based on an index array. Other embodiments are also described.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201180061439.XA CN103282878B (en) | 2010-12-24 | 2011-12-19 | Based on the loop parallelization of Loop partitioning or index array |
EP11852178.0A EP2656204A4 (en) | 2010-12-24 | 2011-12-19 | Loop parallelization based on loop splitting or index array |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/978,465 | 2010-12-24 | ||
US12/978,465 US8793675B2 (en) | 2010-12-24 | 2010-12-24 | Loop parallelization based on loop splitting or index array |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2012087988A2 WO2012087988A2 (en) | 2012-06-28 |
WO2012087988A3 true WO2012087988A3 (en) | 2012-09-27 |
Family
ID=46314818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2011/065948 WO2012087988A2 (en) | 2010-12-24 | 2011-12-19 | Loop parallelization based on loop splitting or index array |
Country Status (5)
Country | Link |
---|---|
US (1) | US8793675B2 (en) |
EP (1) | EP2656204A4 (en) |
CN (1) | CN103282878B (en) |
TW (1) | TWI455025B (en) |
WO (1) | WO2012087988A2 (en) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652231B2 (en) * | 2008-10-14 | 2017-05-16 | International Business Machines Corporation | All-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture |
US8423983B2 (en) * | 2008-10-14 | 2013-04-16 | International Business Machines Corporation | Generating and executing programs for a floating point single instruction multiple data instruction set architecture |
US8327344B2 (en) * | 2008-10-14 | 2012-12-04 | International Business Machines Corporation | Array reference safety analysis in the presence of loops with conditional control flow |
US8589901B2 (en) | 2010-12-22 | 2013-11-19 | Edmund P. Pfleger | Speculative region-level loop optimizations |
US8793675B2 (en) | 2010-12-24 | 2014-07-29 | Intel Corporation | Loop parallelization based on loop splitting or index array |
JP2013171459A (en) * | 2012-02-21 | 2013-09-02 | Toshiba Corp | Program analysis device, method for analyzing program, and recording medium |
US8893103B2 (en) * | 2012-08-16 | 2014-11-18 | Nec Laboratories America, Inc. | Automatic asynchronous offload to many-core coprocessors |
US9244677B2 (en) | 2012-09-28 | 2016-01-26 | Intel Corporation | Loop vectorization methods and apparatus |
EP2913761A4 (en) | 2012-10-25 | 2016-06-15 | Fujitsu Ltd | Execution control method, and information processing device |
US9262139B2 (en) * | 2013-01-07 | 2016-02-16 | Advanced Micro Devices, Inc. | Layered programming for heterogeneous devices |
CN103106067B (en) * | 2013-03-01 | 2016-01-20 | 清华大学 | The optimization method of processor cyclic mapping and system |
EP2972781A4 (en) * | 2013-03-15 | 2016-10-19 | Intel Corp | Methods and systems to vectorize scalar computer program loops having loop-carried dependences |
US8997073B2 (en) * | 2013-04-25 | 2015-03-31 | Nec Laboratories America, Inc. | Semi-automatic restructuring of offloadable tasks for accelerators |
EP3008618B1 (en) * | 2013-06-14 | 2018-05-02 | Intel Corporation | Compiler optimization for complex exponential calculations |
US9569185B2 (en) * | 2014-02-07 | 2017-02-14 | Oracle International Corporation | Changing de-optimization guard representation during the compilation process |
US9489181B2 (en) * | 2014-10-09 | 2016-11-08 | National Instruments Corporation | Correlation analysis of program structures |
US10318297B2 (en) * | 2015-01-30 | 2019-06-11 | Huawei Technologies Co., Ltd. | Method and apparatus for operating a self-timed parallelized multi-core processor |
US9830134B2 (en) * | 2015-06-15 | 2017-11-28 | Qualcomm Incorporated | Generating object code from intermediate code that includes hierarchical sub-routine information |
KR20170047957A (en) * | 2015-10-26 | 2017-05-08 | 삼성전자주식회사 | Method for operating semiconductor device and semiconductor system |
US9703537B2 (en) | 2015-11-02 | 2017-07-11 | International Business Machines Corporation | Method for defining alias sets |
US10310826B2 (en) * | 2015-11-19 | 2019-06-04 | Intel Corporation | Technologies for automatic reordering of sparse matrices |
JP2017107448A (en) * | 2015-12-10 | 2017-06-15 | 株式会社デンソー | Parallelization method, parallelization tool, and on-vehicle device |
US10884942B2 (en) * | 2016-05-19 | 2021-01-05 | International Business Machines Corporation | Reducing memory access latency in scatter/gather operations |
US10261831B2 (en) * | 2016-08-24 | 2019-04-16 | Qualcomm Incorporated | Speculative loop iteration partitioning for heterogeneous execution |
US10671361B2 (en) * | 2016-10-25 | 2020-06-02 | Paypal, Inc. | Automatically determining data dependencies to facilitate code execution |
EP3343351B1 (en) * | 2016-12-28 | 2023-04-26 | Waseda University | Parallel program generating method and parallelization compiling apparatus |
US10866790B2 (en) * | 2018-11-30 | 2020-12-15 | Advanced Micro Devices, Inc. | Transforming loops in program code based on a capacity of a cache |
JP7225859B2 (en) * | 2019-02-04 | 2023-02-21 | 富士通株式会社 | Information processing device, information processing program, and information processing method |
CN109947564B (en) * | 2019-03-07 | 2023-04-11 | 蚂蚁金服(杭州)网络技术有限公司 | Service processing method, device, equipment and storage medium |
US11061653B2 (en) * | 2019-10-30 | 2021-07-13 | International Business Machines Corporation | Dynamic compiling for conditional statements during execution |
JP2022182260A (en) * | 2021-05-28 | 2022-12-08 | 富士通株式会社 | Compiler, compilation method, and compiler device |
US11709662B2 (en) * | 2021-11-05 | 2023-07-25 | Tenstorrent Inc. | Sparsity uniformity enforcement for multicore processor |
US12008352B2 (en) | 2021-11-24 | 2024-06-11 | International Business Machines Corporation | Transformation of a loop within computer code to minimize iterations |
US20230385040A1 (en) * | 2022-05-24 | 2023-11-30 | Xilinx, Inc. | Splitting vector processing loops with an unknown trip count |
CN115016845A (en) * | 2022-05-31 | 2022-09-06 | 上海阵量智能科技有限公司 | Instruction processing method and device, chip, board card, equipment and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144602A1 (en) * | 2003-12-12 | 2005-06-30 | Tin-Fook Ngai | Methods and apparatus to compile programs to use speculative parallel threads |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3317825B2 (en) | 1995-09-28 | 2002-08-26 | 富士通株式会社 | Loop-optimized translation processing method |
US6038398A (en) | 1997-05-29 | 2000-03-14 | Hewlett-Packard Co. | Method and apparatus for improving performance of a program using a loop interchange, loop distribution, loop interchange sequence |
US6708331B1 (en) * | 2000-05-03 | 2004-03-16 | Leon Schwartz | Method for automatic parallelization of software |
JP2001325109A (en) | 2000-05-16 | 2001-11-22 | Hitachi Ltd | Method for optimizing loop and complier |
KR20030042319A (en) * | 2001-11-22 | 2003-05-28 | 한국전자통신연구원 | Method of parallel loop transformation for on-the-fly race detection in parallel program |
US6970985B2 (en) * | 2002-07-09 | 2005-11-29 | Bluerisc Inc. | Statically speculative memory accessing |
US7089545B2 (en) * | 2002-12-17 | 2006-08-08 | International Business Machines Corporation | Detection of reduction variables in an assignment statement |
US7171544B2 (en) * | 2003-12-15 | 2007-01-30 | International Business Machines Corporation | Run-time parallelization of loops in computer programs by access patterns |
EP1731998A1 (en) | 2004-03-29 | 2006-12-13 | Kyoto University | Data processing device, data processing program, and recording medium containing the data processing program |
US20060048122A1 (en) | 2004-08-30 | 2006-03-02 | International Business Machines Corporation | Method, system and computer program product for hierarchical loop optimization of machine executable code |
US7603546B2 (en) * | 2004-09-28 | 2009-10-13 | Intel Corporation | System, method and apparatus for dependency chain processing |
JP2006260096A (en) * | 2005-03-16 | 2006-09-28 | Matsushita Electric Ind Co Ltd | Program conversion method and program conversion device |
US7823141B1 (en) * | 2005-09-30 | 2010-10-26 | Oracle America, Inc. | Using a concurrent partial inspector loop with speculative parallelism |
US7797329B2 (en) * | 2006-06-09 | 2010-09-14 | Oracle America Inc. | Method and system for enabling a synchronization-free and parallel commit phase |
US8549499B1 (en) * | 2006-06-16 | 2013-10-01 | University Of Rochester | Parallel programming using possible parallel regions and its language profiling compiler, run-time system and debugging support |
US8151255B2 (en) * | 2006-06-26 | 2012-04-03 | Oracle America, Inc. | Using police threads to detect dependence violations to reduce speculative parallelization overhead |
US8037462B2 (en) * | 2006-08-02 | 2011-10-11 | International Business Machines Corporation | Framework for parallelizing general reduction |
US20080127146A1 (en) * | 2006-09-06 | 2008-05-29 | Shih-Wei Liao | System and method for generating object code for map-reduce idioms in multiprocessor systems |
US7890943B2 (en) | 2007-03-30 | 2011-02-15 | Intel Corporation | Code optimization based on loop structures |
US8239843B2 (en) * | 2008-03-11 | 2012-08-07 | Oracle America, Inc. | Value predictable variable scoping for speculative automatic parallelization with transactional memory |
US8677337B2 (en) * | 2008-05-01 | 2014-03-18 | Oracle America, Inc. | Static profitability control for speculative automatic parallelization |
US8359587B2 (en) * | 2008-05-01 | 2013-01-22 | Oracle America, Inc. | Runtime profitability control for speculative automatic parallelization |
US8739141B2 (en) * | 2008-05-19 | 2014-05-27 | Oracle America, Inc. | Parallelizing non-countable loops with hardware transactional memory |
US8453134B2 (en) * | 2008-06-04 | 2013-05-28 | Intel Corporation | Improving data locality and parallelism by code replication |
US8645933B2 (en) * | 2008-08-01 | 2014-02-04 | Leon Schwartz | Method and apparatus for detection and optimization of presumably parallel program regions |
US8312442B2 (en) * | 2008-12-10 | 2012-11-13 | Oracle America, Inc. | Method and system for interprocedural prefetching |
US8468508B2 (en) * | 2009-10-09 | 2013-06-18 | International Business Machines Corporation | Parallelization of irregular reductions via parallel building and exploitation of conflict-free units of work at runtime |
US9009689B2 (en) * | 2010-11-09 | 2015-04-14 | Intel Corporation | Speculative compilation to generate advice messages |
US8589901B2 (en) | 2010-12-22 | 2013-11-19 | Edmund P. Pfleger | Speculative region-level loop optimizations |
US8793675B2 (en) | 2010-12-24 | 2014-07-29 | Intel Corporation | Loop parallelization based on loop splitting or index array |
-
2010
- 2010-12-24 US US12/978,465 patent/US8793675B2/en not_active Expired - Fee Related
-
2011
- 2011-12-19 EP EP11852178.0A patent/EP2656204A4/en not_active Ceased
- 2011-12-19 WO PCT/US2011/065948 patent/WO2012087988A2/en active Application Filing
- 2011-12-19 CN CN201180061439.XA patent/CN103282878B/en not_active Expired - Fee Related
- 2011-12-20 TW TW100147402A patent/TWI455025B/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144602A1 (en) * | 2003-12-12 | 2005-06-30 | Tin-Fook Ngai | Methods and apparatus to compile programs to use speculative parallel threads |
Non-Patent Citations (3)
Title |
---|
BOULET, P. ET AL.: "LOOP PARALLELIZATION ALGORITHMS: FROM PARALLELISM EXTRACTION TO CODE GENERATION", PARALLEL COMPUTING, vol. 24, no. 3-4, 1998, pages 421 - 444, XP004130159 * |
GUPTA, M. ET AL.: "Techniques for speculative run-time parallization of loops", THE 1998 ACM/IEEE CONFERENCE ON SUPERCOMPUTING, 1998, pages 1 - 12, XP010802504 * |
KNOBE, K. ET AL.: "Array SSA Form and its use in parallelization", THE 25TH ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGAIMMING LANGUAGES, 1998, pages 107 - 120, XP000792003 * |
Also Published As
Publication number | Publication date |
---|---|
CN103282878A (en) | 2013-09-04 |
TWI455025B (en) | 2014-10-01 |
EP2656204A4 (en) | 2015-10-28 |
WO2012087988A2 (en) | 2012-06-28 |
CN103282878B (en) | 2016-05-04 |
EP2656204A2 (en) | 2013-10-30 |
TW201246070A (en) | 2012-11-16 |
US8793675B2 (en) | 2014-07-29 |
US20120167069A1 (en) | 2012-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012087988A3 (en) | Loop parallelization based on loop splitting or index array | |
WO2011156644A3 (en) | Programmable device, heirarchical parallel machines, methods for providing state information | |
IN2015KN00202A (en) | ||
WO2012103151A3 (en) | State grouping for element utilization | |
GB2514275A (en) | Identifying and ranking solutions from multiple data sources | |
WO2013012863A3 (en) | Protecting privacy in audience creation | |
WO2012082410A3 (en) | Technique for supporting multiple secure enclaves | |
WO2013089919A3 (en) | Developing and executing workflow processes associated with data-encoded tags | |
WO2012129149A3 (en) | Aggregating search results based on associating data instances with knowledge base entities | |
EA201492098A1 (en) | CODING AND DECODING BASED ON MIXING SEQUENCE OF TIME COLLECTIONS | |
EP2588971A4 (en) | Method and apparatus for context-based grouping | |
WO2012067854A3 (en) | Analyte testing method and system with high and low analyte trends notification | |
WO2011073992A3 (en) | Features of a data entry system | |
WO2011021898A3 (en) | Shared data transmitting method, server, and system | |
WO2012093815A3 (en) | Method, system, and computer-readable recording medium for recommending other users or objects by considering preference of at least one user | |
WO2012162278A3 (en) | Social data recording | |
WO2012087643A3 (en) | Thermally downward scalable system | |
GB2508529A (en) | Bios network access | |
WO2011108908A3 (en) | Method and apparatus for transmitting and receiving a content file including multiple streams | |
WO2012112744A3 (en) | Sorting | |
EP2579165A4 (en) | Information generation program, device, method, and information retrieval program, device, method | |
WO2014088917A8 (en) | Music creation systems and methods | |
WO2013168117A3 (en) | Interventional information brokering medical tracking interface | |
WO2012050385A3 (en) | Method and apparatus for accessing device based on intuitive selection | |
HK1163318A1 (en) | Structure-based ascii art |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201180061439.X Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11852178 Country of ref document: EP Kind code of ref document: A2 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011852178 Country of ref document: EP |