KR101832656B1 - 컴파일러 최적화를 위한 메모리 참조 메타데이터 - Google Patents

컴파일러 최적화를 위한 메모리 참조 메타데이터 Download PDF

Info

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
Application number
KR1020167028388A
Other languages
English (en)
Korean (ko)
Other versions
KR20160141753A (ko
Inventor
추-초 림
데이비드 사무엘 브랙먼
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160141753A publication Critical patent/KR20160141753A/ko
Application granted granted Critical
Publication of KR101832656B1 publication Critical patent/KR101832656B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/45525Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • G06F8/434Pointers; Aliasing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime 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)
KR1020167028388A 2014-04-04 2015-03-19 컴파일러 최적화를 위한 메모리 참조 메타데이터 Expired - Fee Related KR101832656B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 北京时代民芯科技有限公司 一种异构多核处理器编译器

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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