KR101832656B1 - 컴파일러 최적화를 위한 메모리 참조 메타데이터 - Google Patents
컴파일러 최적화를 위한 메모리 참조 메타데이터 Download PDFInfo
- Publication number
- KR101832656B1 KR101832656B1 KR1020167028388A KR20167028388A KR101832656B1 KR 101832656 B1 KR101832656 B1 KR 101832656B1 KR 1020167028388 A KR1020167028388 A KR 1020167028388A KR 20167028388 A KR20167028388 A KR 20167028388A KR 101832656 B1 KR101832656 B1 KR 101832656B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- kernel
- compiler
- processor
- memory reference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/45525—Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
- G06F8/434—Pointers; Aliasing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/245,946 | 2014-04-04 | ||
| US14/245,946 US9710245B2 (en) | 2014-04-04 | 2014-04-04 | Memory reference metadata for compiler optimization |
| PCT/US2015/021585 WO2015153143A1 (en) | 2014-04-04 | 2015-03-19 | Memory reference metadata for compiler optimization |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20160141753A KR20160141753A (ko) | 2016-12-09 |
| KR101832656B1 true KR101832656B1 (ko) | 2018-02-26 |
Family
ID=52829334
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020167028388A Expired - Fee Related KR101832656B1 (ko) | 2014-04-04 | 2015-03-19 | 컴파일러 최적화를 위한 메모리 참조 메타데이터 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US9710245B2 (enExample) |
| EP (1) | EP3132347A1 (enExample) |
| JP (1) | JP6329274B2 (enExample) |
| KR (1) | KR101832656B1 (enExample) |
| CN (1) | CN106164862A (enExample) |
| WO (1) | WO2015153143A1 (enExample) |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130113809A1 (en) * | 2011-11-07 | 2013-05-09 | Nvidia Corporation | Technique for inter-procedural memory address space optimization in gpu computing compiler |
| GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
| US9785413B2 (en) | 2015-03-06 | 2017-10-10 | Intel Corporation | Methods and apparatus to eliminate partial-redundant vector loads |
| US9824419B2 (en) * | 2015-11-20 | 2017-11-21 | International Business Machines Corporation | Automatically enabling a read-only cache in a language in which two arrays in two different variables may alias each other |
| WO2017209876A1 (en) | 2016-05-31 | 2017-12-07 | Brocade Communications Systems, Inc. | Buffer manager |
| US10169009B2 (en) | 2016-06-01 | 2019-01-01 | International Business Machines Corporation | Processor that detects memory aliasing in hardware and assures correct operation when memory aliasing occurs |
| US10169010B2 (en) | 2016-06-01 | 2019-01-01 | International Business Machines Corporation | Performing register promotion optimizations in a computer program in regions where memory aliasing may occur and executing the computer program on processor hardware that detects memory aliasing |
| US9934009B2 (en) | 2016-06-01 | 2018-04-03 | International Business Machines Corporation | Processor that includes a special store instruction used in regions of a computer program where memory aliasing may occur |
| JP6810380B2 (ja) * | 2016-10-07 | 2021-01-06 | 日本電気株式会社 | ソースプログラム変換システム、ソースプログラム変換方法、及びソースプログラム変換プログラム |
| US10108404B2 (en) * | 2016-10-24 | 2018-10-23 | International Business Machines Corporation | Compiling optimized entry points for local-use-only function pointers |
| WO2018119778A1 (en) * | 2016-12-28 | 2018-07-05 | Intel Corporation | System and method for vector communication |
| US10547491B2 (en) * | 2017-08-28 | 2020-01-28 | Genband Us Llc | Transcoding with a vector processing unit |
| US10540194B2 (en) * | 2017-12-21 | 2020-01-21 | International Business Machines Corporation | Runtime GPU/CPU selection |
| CN108470072B (zh) * | 2018-03-30 | 2019-07-09 | 迅讯科技(北京)有限公司 | 一种查询编译方法和装置 |
| US11367160B2 (en) * | 2018-08-02 | 2022-06-21 | Nvidia Corporation | Simultaneous compute and graphics scheduling |
| US10884720B2 (en) * | 2018-10-04 | 2021-01-05 | Microsoft Technology Licensing, Llc | Memory ordering annotations for binary emulation |
| CN111340678A (zh) * | 2018-12-19 | 2020-06-26 | 华为技术有限公司 | 一种数据缓存系统、图形处理器及数据缓存方法 |
| US10884664B2 (en) * | 2019-03-14 | 2021-01-05 | Western Digital Technologies, Inc. | Executable memory cell |
| US10872057B1 (en) * | 2019-05-23 | 2020-12-22 | Xilinx, Inc. | Partitioning in a compiler flow for a heterogeneous multi-core architecture |
| JP7460902B2 (ja) | 2020-06-09 | 2024-04-03 | 富士通株式会社 | コンパイラプログラム、コンパイル方法、情報処理装置 |
| WO2022031181A1 (en) * | 2020-08-03 | 2022-02-10 | Huawei Technologies Co., Ltd | Application service metadata encoding and initialization |
| JP7164267B2 (ja) * | 2020-12-07 | 2022-11-01 | インテル・コーポレーション | ヘテロジニアスコンピューティングのためのシステム、方法及び装置 |
| CN114398011B (zh) * | 2022-01-17 | 2023-09-22 | 安谋科技(中国)有限公司 | 数据存储方法、设备和介质 |
| EP4276602A1 (de) * | 2022-05-12 | 2023-11-15 | Siemens Aktiengesellschaft | System mit quellcodeumwandler-spezifizierten speicherbereichen |
| US20240095024A1 (en) * | 2022-06-09 | 2024-03-21 | Nvidia Corporation | Program code versions |
| US20250147766A1 (en) * | 2023-11-02 | 2025-05-08 | Qualcomm Incorporated | Compiler algorithm for gpu prefetching |
| US20250224938A1 (en) * | 2024-01-09 | 2025-07-10 | International Business Machines Corporation | Runtime check compiler optimization |
| CN118409755A (zh) * | 2024-05-22 | 2024-07-30 | 中山大学 | 一种基于机器学习的编译优化方法、系统及装置 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040205740A1 (en) | 2001-03-29 | 2004-10-14 | Lavery Daniel M. | Method for collection of memory reference information and memory disambiguation |
| US20060059326A1 (en) | 2002-11-21 | 2006-03-16 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| US20130132684A1 (en) | 2011-11-18 | 2013-05-23 | Microsoft Organization | Automatic optimization for programming of many-core architectures |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6877088B2 (en) * | 2001-08-08 | 2005-04-05 | Sun Microsystems, Inc. | Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition |
| CA2372034A1 (en) | 2002-02-14 | 2003-08-14 | Cloakware Corporation | Foiling buffer-overflow and alien-code attacks by encoding |
| WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
| US7565631B1 (en) | 2004-07-02 | 2009-07-21 | Northwestern University | Method and system for translating software binaries and assembly code onto hardware |
| US8886887B2 (en) * | 2007-03-15 | 2014-11-11 | International Business Machines Corporation | Uniform external and internal interfaces for delinquent memory operations to facilitate cache optimization |
| US8413126B2 (en) * | 2007-06-15 | 2013-04-02 | Cray Inc. | Scalar code reduction using shortest path routing |
| US20090070753A1 (en) | 2007-09-07 | 2009-03-12 | International Business Machines Corporation | Increase the coverage of profiling feedback with data flow analysis |
| US8458671B1 (en) * | 2008-02-12 | 2013-06-04 | Tilera Corporation | Method and system for stack back-tracing in computer programs |
| US8209525B2 (en) | 2008-08-15 | 2012-06-26 | Apple Inc. | Method and apparatus for executing program code |
| DE112009005006T5 (de) * | 2009-06-26 | 2013-01-10 | Intel Corporation | Optimierungen für ein ungebundenes transaktionales Speichersystem (UTM) |
| US8589867B2 (en) * | 2010-06-18 | 2013-11-19 | Microsoft Corporation | Compiler-generated invocation stubs for data parallel programming model |
| US8527737B2 (en) * | 2010-06-23 | 2013-09-03 | Apple Inc. | Using addresses to detect overlapping memory regions |
| WO2012142186A2 (en) * | 2011-04-11 | 2012-10-18 | Child Timothy | Database acceleration using gpu and multicore cpu systems and methods |
| US8935683B2 (en) * | 2011-04-20 | 2015-01-13 | Qualcomm Incorporated | Inline function linking |
| US8468507B2 (en) | 2011-06-10 | 2013-06-18 | Microsoft Corporation | Binding executable code at runtime |
| US20130141443A1 (en) * | 2011-12-01 | 2013-06-06 | Michael L. Schmit | Software libraries for heterogeneous parallel processing platforms |
| US9256915B2 (en) * | 2012-01-27 | 2016-02-09 | Qualcomm Incorporated | Graphics processing unit buffer management |
| US9734333B2 (en) * | 2012-04-17 | 2017-08-15 | Heat Software Usa Inc. | Information security techniques including detection, interdiction and/or mitigation of memory injection attacks |
| CN103116513B (zh) * | 2012-07-13 | 2016-03-23 | 北京时代民芯科技有限公司 | 一种异构多核处理器编译器 |
-
2014
- 2014-04-04 US US14/245,946 patent/US9710245B2/en not_active Expired - Fee Related
-
2015
- 2015-03-19 EP EP15716222.3A patent/EP3132347A1/en not_active Withdrawn
- 2015-03-19 WO PCT/US2015/021585 patent/WO2015153143A1/en not_active Ceased
- 2015-03-19 JP JP2016559414A patent/JP6329274B2/ja not_active Expired - Fee Related
- 2015-03-19 CN CN201580016245.6A patent/CN106164862A/zh active Pending
- 2015-03-19 KR KR1020167028388A patent/KR101832656B1/ko not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040205740A1 (en) | 2001-03-29 | 2004-10-14 | Lavery Daniel M. | Method for collection of memory reference information and memory disambiguation |
| US20060059326A1 (en) | 2002-11-21 | 2006-03-16 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| US20130132684A1 (en) | 2011-11-18 | 2013-05-23 | Microsoft Organization | Automatic optimization for programming of many-core architectures |
Non-Patent Citations (2)
| Title |
|---|
| Christos 외 1명. 'HYDA: A HYbrid Dependence Analysis for the adaptive optimisation of OpenCL kernels'. Proceedings of International Workshop on Adaptive Self-tuning Computing Systems, 2014.01., pp.5-7. |
| Dmitry Mikushin 외 1명. 'KernelGen-The Design and Implementation of a Next Generation Compiler Platform for Accelerating Numerical Models on GPUs'. 2014 IEEE International IPDPSW, 2014.5., pp.1011-1020. |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2015153143A1 (en) | 2015-10-08 |
| CN106164862A (zh) | 2016-11-23 |
| JP6329274B2 (ja) | 2018-05-23 |
| KR20160141753A (ko) | 2016-12-09 |
| EP3132347A1 (en) | 2017-02-22 |
| US9710245B2 (en) | 2017-07-18 |
| JP2017509999A (ja) | 2017-04-06 |
| US20150286472A1 (en) | 2015-10-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101832656B1 (ko) | 컴파일러 최적화를 위한 메모리 참조 메타데이터 | |
| US11243816B2 (en) | Program execution on heterogeneous platform | |
| Membarth et al. | Generating device-specific GPU code for local operators in medical imaging | |
| US20200167200A1 (en) | Enqueuing Kernels from Kernels on GPU/CPU | |
| KR102770083B1 (ko) | 벡터 로드 명령어 | |
| CN110008009B (zh) | 在运行时绑定常量以提高资源利用率 | |
| US8341615B2 (en) | Single instruction multiple data (SIMD) code generation for parallel loops using versioning and scheduling | |
| US10152312B2 (en) | Dynamic compiler parallelism techniques | |
| CN102576314A (zh) | 具有横跨多个处理器的数据并行线程之映射处理逻辑 | |
| Mikushin et al. | KernelGen--The Design and Implementation of a Next Generation Compiler Platform for Accelerating Numerical Models on GPUs | |
| Membarth et al. | Code generation for embedded heterogeneous architectures on Android | |
| Crisci et al. | Sycl-bench 2020: Benchmarking sycl 2020 on amd, intel, and nvidia gpus | |
| US10496433B2 (en) | Modification of context saving functions | |
| Trompouki et al. | Optimisation opportunities and evaluation for GPGPU applications on low-end mobile GPUs | |
| Haidl et al. | High-level programming for many-cores using C++ 14 and the STL | |
| US9569191B2 (en) | Dynamic programming platform for implementing bulk data operators in a multithreaded environment | |
| Besnard et al. | A framework for automatic and parameterizable memoization | |
| US11593114B1 (en) | Iterating group sum of multiple accumulate operations | |
| US10996960B1 (en) | Iterating single instruction, multiple-data (SIMD) instructions | |
| Kuo et al. | The design of LLVM-based shader compiler for embedded architecture | |
| Afonso et al. | Fancier: a unified framework for java, c, and opencl integration | |
| Tian et al. | Optimizing GPU register usage: Extensions to OpenACC and compiler optimizations | |
| Guide | Cuda c best practices guide | |
| Jamieson et al. | Compact native code generation for dynamic languages on micro-core architectures | |
| US20250138827A1 (en) | Methods and apparatus for processing instructions |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| A201 | Request for examination | ||
| A302 | Request for accelerated examination | ||
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PA0302 | Request for accelerated examination |
St.27 status event code: A-1-2-D10-D17-exm-PA0302 St.27 status event code: A-1-2-D10-D16-exm-PA0302 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20210221 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20210221 |