CN102165428B - 软件应用性能增强 - Google Patents

软件应用性能增强 Download PDF

Info

Publication number
CN102165428B
CN102165428B CN200980131425.3A CN200980131425A CN102165428B CN 102165428 B CN102165428 B CN 102165428B CN 200980131425 A CN200980131425 A CN 200980131425A CN 102165428 B CN102165428 B CN 102165428B
Authority
CN
China
Prior art keywords
code
input code
intermediate representation
performance analysis
analysis comprises
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
CN200980131425.3A
Other languages
English (en)
Chinese (zh)
Other versions
CN102165428A (zh
Inventor
R·S·德雷耶
J·K·琼斯
M·D·夏普
I·D·贝夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102165428A publication Critical patent/CN102165428A/zh
Application granted granted Critical
Publication of CN102165428B publication Critical patent/CN102165428B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

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)
  • Stored Programmes (AREA)
CN200980131425.3A 2008-08-13 2009-08-13 软件应用性能增强 Expired - Fee Related CN102165428B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US18890508P 2008-08-13 2008-08-13
US61/188905 2008-08-13
PCT/US2009/004649 WO2010019254A1 (en) 2008-08-13 2009-08-13 Software application performance enhancement

Publications (2)

Publication Number Publication Date
CN102165428A CN102165428A (zh) 2011-08-24
CN102165428B true CN102165428B (zh) 2015-05-20

Family

ID=41669151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980131425.3A Expired - Fee Related CN102165428B (zh) 2008-08-13 2009-08-13 软件应用性能增强

Country Status (5)

Country Link
US (1) US8799884B2 (enExample)
EP (1) EP2329389A4 (enExample)
JP (2) JP2011530768A (enExample)
CN (1) CN102165428B (enExample)
WO (1) WO2010019254A1 (enExample)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10713069B2 (en) * 2008-09-04 2020-07-14 Synopsys, Inc. Software and hardware emulation system
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US9189233B2 (en) 2008-11-24 2015-11-17 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US9672019B2 (en) 2008-11-24 2017-06-06 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US9081928B2 (en) * 2009-06-02 2015-07-14 Vector Fabrics, B.V. Embedded system development
US8832663B2 (en) * 2009-11-23 2014-09-09 International Business Machines Corporation Thread serialization and disablement tool
US8549523B2 (en) 2009-11-23 2013-10-01 International Business Machines Corporation Performing runtime analysis and control of folding identified threads by assuming context of another thread and executing in lieu of another thread folding tool
US8881106B2 (en) * 2009-12-26 2014-11-04 Intel Corporation Debugging parallel software using speculatively executed code sequences in a multiple core environment
WO2011133030A1 (en) 2010-04-23 2011-10-27 Vector Fabrics B.V. Improved embedded system performance
US8645934B2 (en) * 2010-05-06 2014-02-04 International Business Machines Corporation Simultaneous compiler binary optimizations
CN101853183B (zh) * 2010-05-14 2012-11-21 中国科学院声学研究所 一种用于动态管理片上指令便签存储器的方法
US8412744B2 (en) * 2010-06-23 2013-04-02 Microsoft Corporation Visualization of runtime analysis across dynamic boundaries
US8938721B2 (en) * 2010-07-21 2015-01-20 Microsoft Corporation Measuring actual end user performance and availability of web applications
US8661424B2 (en) * 2010-09-02 2014-02-25 Honeywell International Inc. Auto-generation of concurrent code for multi-core applications
US9678747B2 (en) 2011-02-08 2017-06-13 Openspan, Inc. Code injection and code interception in an operating system with multiple subsystem environments
US9785470B2 (en) * 2011-06-20 2017-10-10 Microsoft Technology Licensing, Llc Memory management model and interface for unmodified applications
US10466989B2 (en) 2011-09-02 2019-11-05 Microsoft Technology Licensing, Llc. Fast presentation of markup content having script code
WO2013048468A1 (en) 2011-09-30 2013-04-04 Intel Corporation Instruction and logic to perform dynamic binary translation
CN103365668B (zh) * 2012-03-26 2017-12-26 联想(北京)有限公司 一种动态链接库装载和链接的方法、装置
US9038054B1 (en) * 2012-06-01 2015-05-19 Google Inc. System and method for automated product version rollback
US8909990B2 (en) 2012-08-04 2014-12-09 Microsoft Corporation Historical software diagnostics using lightweight process snapshots
US9411715B2 (en) * 2012-12-12 2016-08-09 Nvidia Corporation System, method, and computer program product for optimizing the management of thread stack memory
US9292898B2 (en) * 2013-03-15 2016-03-22 Intel Corporation Conditional end of thread mechanism
US9880842B2 (en) 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
WO2015060850A1 (en) * 2013-10-24 2015-04-30 Intel Corporation Conjugate code generation for efficient dynamic optimizations
US10289411B2 (en) 2013-11-18 2019-05-14 Microsoft Technology Licensing, Llc Diagnosing production applications
JP6322968B2 (ja) * 2013-11-19 2018-05-16 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
US9448788B1 (en) * 2014-01-22 2016-09-20 SecondWrite LLC Binary rewriting system
US9632915B2 (en) 2014-10-29 2017-04-25 Microsoft Technology Licensing, Llc. Historical control flow visualization in production diagnostics
US9513832B2 (en) 2015-03-25 2016-12-06 International Business Machines Corporation Accessing global data from accelerator devices
CN105242929B (zh) * 2015-10-13 2018-07-17 西安交通大学 一种针对多核平台的二进制程序自动并行化的设计方法
KR20170047957A (ko) * 2015-10-26 2017-05-08 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
US9823998B2 (en) * 2015-12-02 2017-11-21 International Business Machines Corporation Trace recovery via statistical reasoning
CN106933642B (zh) * 2015-12-29 2021-04-27 阿里巴巴集团控股有限公司 应用程序的处理方法及处理装置
US10509634B2 (en) 2016-03-30 2019-12-17 International Business Machines Corporation Data flow analysis for dynamic application, skipping views
US10078505B2 (en) * 2016-07-20 2018-09-18 International Business Machines Corporation Partial connection of iterations during loop unrolling
US10481876B2 (en) 2017-01-11 2019-11-19 Microsoft Technology Licensing, Llc Methods and systems for application rendering
KR102327913B1 (ko) * 2017-04-28 2021-11-19 엔에이치엔 주식회사 블록 기반 데이터 분석 방법 및 시스템
US10503626B2 (en) 2018-01-29 2019-12-10 Oracle International Corporation Hybrid instrumentation framework for multicore low power processors
US11113059B1 (en) * 2021-02-10 2021-09-07 Next Silicon Ltd Dynamic allocation of executable code for multi-architecture heterogeneous computing
CN112988593B (zh) * 2021-04-13 2024-02-06 苏州沁游网络科技有限公司 代码分析方法、装置、计算机设备及存储介质
CN119938309B (zh) * 2024-12-09 2025-12-05 浙江大学 一种自动提取并行应用程序热点代码的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110481A1 (en) * 2001-12-06 2003-06-12 Kiyomi Wada Program tuning method
US20080005547A1 (en) * 2006-06-20 2008-01-03 Papakipos Matthew N Systems and methods for generating reference results using a parallel-processing computer system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9600823D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
US5966537A (en) * 1997-05-28 1999-10-12 Sun Microsystems, Inc. Method and apparatus for dynamically optimizing an executable computer program using input data
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
JP2001075802A (ja) * 1999-09-08 2001-03-23 Fujitsu Ltd 投機的実行装置および検証装置
US6986128B2 (en) * 2000-01-07 2006-01-10 Sony Computer Entertainment Inc. Multiple stage program recompiler and method
US7516446B2 (en) * 2002-06-25 2009-04-07 International Business Machines Corporation Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs
US6970985B2 (en) * 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US7805710B2 (en) * 2003-07-15 2010-09-28 International Business Machines Corporation Shared code caching for program code conversion
KR101244069B1 (ko) * 2005-04-20 2013-03-18 인터내셔널 비지네스 머신즈 코포레이션 프로그램 코드 변환시 정밀한 예외 핸들링을 위한 방법 및장치
US8037465B2 (en) * 2005-09-30 2011-10-11 Intel Corporation Thread-data affinity optimization using compiler
US8271943B2 (en) * 2007-04-24 2012-09-18 National Instruments Corporation Automatically generating a graphical program with a plurality of models of computation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110481A1 (en) * 2001-12-06 2003-06-12 Kiyomi Wada Program tuning method
US20080005547A1 (en) * 2006-06-20 2008-01-03 Papakipos Matthew N Systems and methods for generating reference results using a parallel-processing computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dynamic Parallelization and Vectorization of Binary Executables on Hierarchical Platforms;Efe Yardimci,etc;《Journal of Instruction-Level Parallelism》;20080608;第10卷;说明书5-15页,附图1 *

Also Published As

Publication number Publication date
US20100042981A1 (en) 2010-02-18
EP2329389A4 (en) 2013-02-27
EP2329389A1 (en) 2011-06-08
JP2011530768A (ja) 2011-12-22
CN102165428A (zh) 2011-08-24
WO2010019254A1 (en) 2010-02-18
JP2015084251A (ja) 2015-04-30
US8799884B2 (en) 2014-08-05

Similar Documents

Publication Publication Date Title
CN102165428B (zh) 软件应用性能增强
Yan et al. JCUDA: A programmer-friendly interface for accelerating Java programs with CUDA
US8448156B2 (en) Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US7814486B2 (en) Multi-thread runtime system
US8443349B2 (en) Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8458680B2 (en) Systems and methods for dynamically choosing a processing element for a compute kernel
US8584106B2 (en) Systems and methods for compiling an application for a parallel-processing computer system
US8443348B2 (en) Application program interface of a parallel-processing computer system that supports multiple programming languages
US20070294681A1 (en) Systems and methods for profiling an application running on a parallel-processing computer system
Sheikh et al. Control-flow decoupling
Yardimci et al. Dynamic parallelization and mapping of binary executables on hierarchical platforms
Jensen et al. Improving loop dependence analysis
Oh et al. A generalized framework for automatic scripting language parallelization
Kazi et al. Coarse-grained thread pipelining: A speculative parallel execution model for shared-memory multiprocessors
Spear et al. Fastpath speculative parallelization
Yu et al. General data structure expansion for multi-threading
Ravi et al. Semi-automatic restructuring of offloadable tasks for many-core accelerators
Chuang et al. Dynamic profile driven code version selection
Yardımcı et al. Dynamic parallelization and vectorization of binary executables on hierarchical platforms
Kumar et al. A Modern Parallel Register Sharing Architecture for Code Compilation
Lashgar et al. IPMACC: Translating OpenACC API to OpenCL
Jansson Enabling Profile Guided Optimizations (PGO) for Graphics
Gaspar Automatic Selection of Software Code Regions for Migrating to GPUs
Sun Speculative vectorization with selective replay
Clarkson Compiler and Runtime Support for Heterogeneous Programming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: TRANSCELLA INC.

Effective date: 20130128

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20130128

Address after: American California

Applicant after: Qualcomm Inc.

Address before: American California

Applicant before: Transcella Inc.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150520

Termination date: 20190813

CF01 Termination of patent right due to non-payment of annual fee