KR102009906B1 - 고성능의 전력 효율적인 프로그래밍 가능 이미지 처리 하드웨어 플랫폼에 프로그램 코드를 매핑하기 위한 컴파일러 기술들 - Google Patents

고성능의 전력 효율적인 프로그래밍 가능 이미지 처리 하드웨어 플랫폼에 프로그램 코드를 매핑하기 위한 컴파일러 기술들 Download PDF

Info

Publication number
KR102009906B1
KR102009906B1 KR1020187022160A KR20187022160A KR102009906B1 KR 102009906 B1 KR102009906 B1 KR 102009906B1 KR 1020187022160 A KR1020187022160 A KR 1020187022160A KR 20187022160 A KR20187022160 A KR 20187022160A KR 102009906 B1 KR102009906 B1 KR 102009906B1
Authority
KR
South Korea
Prior art keywords
kernel
instructions
kernels
program code
graph
Prior art date
Application number
KR1020187022160A
Other languages
English (en)
Korean (ko)
Other versions
KR20180100372A (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 KR20180100372A publication Critical patent/KR20180100372A/ko
Application granted granted Critical
Publication of KR102009906B1 publication Critical patent/KR102009906B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)
KR1020187022160A 2016-02-26 2016-12-28 고성능의 전력 효율적인 프로그래밍 가능 이미지 처리 하드웨어 플랫폼에 프로그램 코드를 매핑하기 위한 컴파일러 기술들 KR102009906B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662300684P 2016-02-26 2016-02-26
US62/300,684 2016-02-26
US15/389,113 US10387988B2 (en) 2016-02-26 2016-12-22 Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US15/389,113 2016-12-22
PCT/US2016/068932 WO2017146816A1 (en) 2016-02-26 2016-12-28 Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform

Publications (2)

Publication Number Publication Date
KR20180100372A KR20180100372A (ko) 2018-09-10
KR102009906B1 true KR102009906B1 (ko) 2019-08-12

Family

ID=59678542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187022160A KR102009906B1 (ko) 2016-02-26 2016-12-28 고성능의 전력 효율적인 프로그래밍 가능 이미지 처리 하드웨어 플랫폼에 프로그램 코드를 매핑하기 위한 컴파일러 기술들

Country Status (7)

Country Link
US (3) US10387988B2 (zh)
EP (1) EP3420527B1 (zh)
JP (2) JP6704056B2 (zh)
KR (1) KR102009906B1 (zh)
CN (1) CN108541321B (zh)
TW (2) TWI614689B (zh)
WO (1) WO2017146816A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387988B2 (en) * 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10204396B2 (en) * 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
JP6534492B2 (ja) * 2016-03-24 2019-06-26 富士フイルム株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
US10534639B2 (en) * 2017-07-06 2020-01-14 Bitfusion.io, Inc. Virtualization of multiple coprocessors
JP2019074967A (ja) * 2017-10-17 2019-05-16 キヤノン株式会社 フィルタ処理装置およびその制御方法
EP4395229A1 (en) 2017-11-09 2024-07-03 nChain Licensing AG Systems and methods for ensuring correct execution of computer program using a mediator computer system
CN117640170A (zh) 2017-11-09 2024-03-01 区块链控股有限公司 用于简化可执行指令以优化可验证计算的系统
SG11202005567QA (en) 2017-12-13 2020-07-29 Nchain Holdings Ltd System and method for securely sharing cryptographic material
US10983583B2 (en) * 2018-08-23 2021-04-20 Apple Inc. Electronic display reduced blanking duration systems and methods
US20220043688A1 (en) * 2018-09-11 2022-02-10 Huawei Technologies Co., Ltd. Heterogeneous Scheduling for Sequential Compute Dag
WO2020116672A1 (ko) * 2018-12-05 2020-06-11 전자부품연구원 딥러닝 하드웨어 가속장치
CN110147236B (zh) * 2019-04-30 2023-01-31 创新先进技术有限公司 代码编译方法及装置
US10552121B1 (en) * 2019-05-07 2020-02-04 Capital One Services, Llc System and method for dynamic process flow control based on real-time events
CN110399124B (zh) * 2019-07-19 2022-04-22 浪潮电子信息产业股份有限公司 一种代码生成方法、装置、设备及可读存储介质
DE102019129362B4 (de) 2019-10-30 2023-09-07 Chie-Hee Cho-Nöth Vorrichtung und Verfahren zur Messung der Kerntemperatur eines menschlichen oder tierischen Körpers unter MRT-Bedingungen
WO2021137669A1 (ko) * 2019-12-30 2021-07-08 매니코어소프트주식회사 딥러닝을 위한 가속기용 프로그램 생성 방법
KR102490539B1 (ko) * 2019-12-30 2023-01-19 주식회사 모레 딥러닝을 위한 가속기용 프로그램 생성 방법
WO2022064828A1 (ja) * 2020-09-28 2022-03-31 日本電気株式会社 情報処理装置、情報処理方法及び記憶媒体
CN112558938B (zh) * 2020-12-16 2021-11-09 中国科学院空天信息创新研究院 一种基于有向无环图的机器学习工作流调度方法及系统
CN113485712B (zh) * 2021-04-23 2024-05-07 武汉深之度科技有限公司 一种内核裁剪方法及计算设备
BE1029306B1 (de) * 2021-04-30 2023-07-14 Zebra Technologies Industrielles ethernet-konfigurationswerkzeug mit vorschaufunktionen
CN116484822B (zh) * 2023-06-26 2023-09-01 和创(北京)科技股份有限公司 表单字段表达式循环依赖计算方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130091507A1 (en) * 2011-10-11 2013-04-11 Nec Laboratories America, Inc. Optimizing data warehousing applications for gpus using dynamic stream scheduling and dispatch of fused and split kernels
US20150128136A1 (en) 2012-05-29 2015-05-07 Qatar Foundation Graphics processing unit controller, host system, and methods

Family Cites Families (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US156284A (en) 1874-10-27 Improvement in railway-car brakes
US4445177A (en) 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
DE3851005T2 (de) 1987-06-01 1995-04-20 Applied Intelligent Syst Inc Paralleles Nachbarverarbeitungssystem und -Verfahren.
US4935894A (en) 1987-08-31 1990-06-19 Motorola, Inc. Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information
US5253308A (en) 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
WO1994009595A1 (en) 1991-09-20 1994-04-28 Shaw Venson M Method and apparatus including system architecture for multimedia communications
JP3482660B2 (ja) 1993-09-08 2003-12-22 ソニー株式会社 画像データ処理装置および画像データ処理方法
US5612693A (en) 1994-12-14 1997-03-18 International Business Machines Corporation Sliding window data compression using a toroidal bit shift register
EP0875031B1 (de) 1996-01-15 2001-06-20 Infineon Technologies AG Prozessor zur bildverarbeitung
US5892962A (en) 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US6366289B1 (en) 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US6587158B1 (en) 1998-07-23 2003-07-01 Dvdo, Inc. Method and apparatus for reducing on-chip memory in vertical video processing
US7010177B1 (en) 1998-08-27 2006-03-07 Intel Corporation Portability of digital images
WO2000055810A1 (fr) 1999-03-16 2000-09-21 Hamamatsu Photonics K. K. Capteur de vision ultra-rapide
JP3922859B2 (ja) 1999-12-28 2007-05-30 株式会社リコー 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6745319B1 (en) 2000-02-18 2004-06-01 Texas Instruments Incorporated Microprocessor with instructions for shuffling and dealing data
US6728862B1 (en) 2000-05-22 2004-04-27 Gazelle Technology Corporation Processor array and parallel data processing methods
US6728722B1 (en) 2000-08-28 2004-04-27 Sun Microsystems, Inc. General data structure for describing logical data spaces
US7286717B2 (en) 2001-10-31 2007-10-23 Ricoh Company, Ltd. Image data processing device processing a plurality of series of data items simultaneously in parallel
JP4146654B2 (ja) 2002-02-28 2008-09-10 株式会社リコー 画像処理回路、複合画像処理回路、および、画像形成装置
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
WO2003088033A1 (en) 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7624174B2 (en) * 2003-05-22 2009-11-24 Microsoft Corporation Self-learning method and system for detecting abnormalities
US20060044576A1 (en) 2004-07-30 2006-03-02 Kabushiki Kaisha Toshiba Apparatus for image processing
US8578389B1 (en) * 2004-05-04 2013-11-05 Oracle America, Inc. Method and system for merging directed acyclic graphs representing data flow codes
US7667764B2 (en) 2004-06-04 2010-02-23 Konica Minolta Holdings, Inc. Image sensing apparatus
JP4219887B2 (ja) 2004-12-28 2009-02-04 富士通マイクロエレクトロニクス株式会社 画像処理装置及び画像処理方法
ATE504043T1 (de) 2005-04-28 2011-04-15 Univ Edinburgh Umkonfigurierbares anweisungs-zellen-array
US7882339B2 (en) 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
US7953158B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Computation transformations for streaming applications on multiprocessors
JP2007067917A (ja) 2005-08-31 2007-03-15 Matsushita Electric Ind Co Ltd 画像データ処理装置
US7602974B2 (en) 2005-10-21 2009-10-13 Mobilic Technology (Cayman) Corp. Universal fixed-pixel-size ISP scheme
FR2895103B1 (fr) 2005-12-19 2008-02-22 Dxo Labs Sa Procede et systeme de traitement de donnees numeriques
US7802073B1 (en) 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US8438365B2 (en) * 2006-10-06 2013-05-07 Calos Fund Limited Liability Company Efficient data loading in a data-parallel processor
US20080111823A1 (en) 2006-11-13 2008-05-15 Faraday Technology Corp. Graphics processing system
EP1927949A1 (en) * 2006-12-01 2008-06-04 Thomson Licensing Array of processing elements with local registers
US8321849B2 (en) 2007-01-26 2012-11-27 Nvidia Corporation Virtual architecture and instruction set for parallel thread computing
US20080244222A1 (en) 2007-03-30 2008-10-02 Intel Corporation Many-core processing using virtual processors
JP4389976B2 (ja) 2007-06-29 2009-12-24 ブラザー工業株式会社 画像処理装置および画像処理プログラム
EP2663071B1 (en) 2007-09-05 2015-11-18 Tohoku University Solid-state image sensor and drive method for the same
US8174534B2 (en) * 2007-12-06 2012-05-08 Via Technologies, Inc. Shader processing systems and methods
US8106914B2 (en) * 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit
US7995845B2 (en) * 2008-01-30 2011-08-09 Qualcomm Incorporated Digital signal pattern detection and classification using kernel fusion
US9678775B1 (en) * 2008-04-09 2017-06-13 Nvidia Corporation Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment
CN102047241B (zh) * 2008-05-30 2014-03-12 先进微装置公司 本地与全局数据共享
JP4999791B2 (ja) 2008-06-30 2012-08-15 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US9690591B2 (en) 2008-10-30 2017-06-27 Intel Corporation System and method for fusing instructions queued during a time window defined by a delay counter
US8456480B2 (en) * 2009-01-14 2013-06-04 Calos Fund Limited Liability Company Method for chaining image-processing functions on a SIMD processor
KR101572879B1 (ko) * 2009-04-29 2015-12-01 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법
US9354944B2 (en) * 2009-07-27 2016-05-31 Advanced Micro Devices, Inc. Mapping processing logic having data-parallel threads across processors
US20110055495A1 (en) 2009-08-28 2011-03-03 Qualcomm Incorporated Memory Controller Page Management Devices, Systems, and Methods
US8976195B1 (en) 2009-10-14 2015-03-10 Nvidia Corporation Generating clip state for a batch of vertices
US8436857B2 (en) 2009-10-20 2013-05-07 Oracle America, Inc. System and method for applying level of detail schemes
US8595428B2 (en) 2009-12-22 2013-11-26 Intel Corporation Memory controller functionalities to support data swizzling
US8856496B2 (en) 2010-04-27 2014-10-07 Via Technologies, Inc. Microprocessor that fuses load-alu-store and JCC macroinstructions
US8749667B2 (en) 2010-08-02 2014-06-10 Texas Instruments Incorporated System and method for maintaining maximum input rate while up-scaling an image vertically
US8508612B2 (en) 2010-09-30 2013-08-13 Apple Inc. Image signal processor line buffer configuration for processing ram image data
US8797323B2 (en) * 2011-01-18 2014-08-05 Intel Corporation Shadowing dynamic volumetric media
CN103339604B (zh) 2011-01-31 2016-10-26 株式会社索思未来 程序生成装置、程序生成方法、处理器装置以及多处理器系统
US9092267B2 (en) 2011-06-20 2015-07-28 Qualcomm Incorporated Memory sharing in graphics processing unit
US20130027416A1 (en) 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
JP5742651B2 (ja) 2011-10-15 2015-07-01 コニカミノルタ株式会社 画像処理装置、連携方法および連携プログラム
JP5746100B2 (ja) 2011-12-27 2015-07-08 京セラドキュメントソリューションズ株式会社 画像形成装置
US8823736B2 (en) * 2012-01-20 2014-09-02 Intel Corporation Graphics tiling architecture with bounding volume hierarchies
US10244246B2 (en) 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
US9235769B2 (en) 2012-03-15 2016-01-12 Herta Security, S.L. Parallel object detection method for heterogeneous multithreaded microarchitectures
TWI520598B (zh) 2012-05-23 2016-02-01 晨星半導體股份有限公司 影像處理裝置與影像處理方法
US9232139B2 (en) 2012-07-24 2016-01-05 Apple Inc. Image stabilization using striped output transformation unit
US9378181B2 (en) 2012-11-09 2016-06-28 Intel Corporation Scalable computing array
US9424038B2 (en) * 2012-12-10 2016-08-23 Nvidia Corporation Compiler-controlled region scheduling for SIMD execution of threads
US9241142B2 (en) * 2013-01-24 2016-01-19 Analog Devices Global Descriptor-based stream processor for image processing and method associated therewith
US8954992B2 (en) 2013-03-15 2015-02-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Distributed and scaled-out network switch and packet processing
US20150277904A1 (en) 2014-03-28 2015-10-01 Roger Espasa Method and apparatus for performing a plurality of multiplication operations
US9818166B2 (en) * 2015-01-16 2017-11-14 Intel Corporation Graph-based application programming interface architectures with producer/consumer nodes for enhanced image processing parallelism
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US9772852B2 (en) 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
CN105023289A (zh) 2015-07-08 2015-11-04 成都梦工厂网络信息有限公司 图形图像三维处理平台
US10387988B2 (en) * 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10430919B2 (en) * 2017-05-12 2019-10-01 Google Llc Determination of per line buffer unit memory allocation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130091507A1 (en) * 2011-10-11 2013-04-11 Nec Laboratories America, Inc. Optimizing data warehousing applications for gpus using dynamic stream scheduling and dispatch of fused and split kernels
US20150128136A1 (en) 2012-05-29 2015-05-07 Qatar Foundation Graphics processing unit controller, host system, and methods

Also Published As

Publication number Publication date
EP3420527A1 (en) 2019-01-02
US20200020069A1 (en) 2020-01-16
TWI614689B (zh) 2018-02-11
JP2020061168A (ja) 2020-04-16
TW201810036A (zh) 2018-03-16
KR20180100372A (ko) 2018-09-10
JP2019508802A (ja) 2019-03-28
JP6704056B2 (ja) 2020-06-03
EP3420527B1 (en) 2021-07-14
WO2017146816A1 (en) 2017-08-31
TW201800940A (zh) 2018-01-01
TWI635443B (zh) 2018-09-11
CN108541321A (zh) 2018-09-14
US10387988B2 (en) 2019-08-20
JP6858239B2 (ja) 2021-04-14
US10387989B2 (en) 2019-08-20
US20170249716A1 (en) 2017-08-31
CN108541321B (zh) 2023-04-18
US20170287103A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
KR102009906B1 (ko) 고성능의 전력 효율적인 프로그래밍 가능 이미지 처리 하드웨어 플랫폼에 프로그램 코드를 매핑하기 위한 컴파일러 기술들
JP7202987B2 (ja) 高性能で、電力効率の良い、プログラマブルな画像処理のためのアーキテクチャ
JP6793228B2 (ja) 画像プロセッサのためのシート生成部
KR101971657B1 (ko) 이미지 프로세서에 대한 에너지 효율적인 프로세서 코어 아키텍처
KR102050899B1 (ko) 이미지 프로세서용 컴파일러 관리 메모리
KR102278021B1 (ko) 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환
KR20190107101A (ko) 지원 내부 네트워크 및 구성 가능한 개수의 활성 코어들을 갖는 이미지 프로세서
KR102072145B1 (ko) 이미지 프로세서에 대한 매크로 i/o 유닛

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant