GB2566761B - Discarding of threads processed by a warp processing unit - Google Patents

Discarding of threads processed by a warp processing unit Download PDF

Info

Publication number
GB2566761B
GB2566761B GB1718157.9A GB201718157A GB2566761B GB 2566761 B GB2566761 B GB 2566761B GB 201718157 A GB201718157 A GB 201718157A GB 2566761 B GB2566761 B GB 2566761B
Authority
GB
United Kingdom
Prior art keywords
discarding
processing unit
warp processing
threads processed
threads
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.)
Active
Application number
GB1718157.9A
Other versions
GB2566761A (en
GB201718157D0 (en
Inventor
Forey Stephane
Sideris Isidoros
Gisbert Döffinger Reimar
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of GB201718157D0 publication Critical patent/GB201718157D0/en
Publication of GB2566761A publication Critical patent/GB2566761A/en
Application granted granted Critical
Publication of GB2566761B publication Critical patent/GB2566761B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
    • G06F9/38885Divergence aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
GB1718157.9A 2017-09-20 2017-11-02 Discarding of threads processed by a warp processing unit Active GB2566761B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GR20170100422 2017-09-20

Publications (3)

Publication Number Publication Date
GB201718157D0 GB201718157D0 (en) 2017-12-20
GB2566761A GB2566761A (en) 2019-03-27
GB2566761B true GB2566761B (en) 2020-01-22

Family

ID=60664678

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1718157.9A Active GB2566761B (en) 2017-09-20 2017-11-02 Discarding of threads processed by a warp processing unit

Country Status (2)

Country Link
US (1) US10748236B2 (en)
GB (1) GB2566761B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11276137B1 (en) * 2021-01-29 2022-03-15 Arm Limited Graphics processing systems with conditional evictions
US20220318056A1 (en) * 2021-03-30 2022-10-06 Advanced Micro Devices, Inc. Dynamic system power load management
GB2610242B (en) 2021-08-27 2024-09-25 Advanced Risc Mach Ltd Graphics processing
CN116643698B (en) * 2023-05-26 2024-03-29 摩尔线程智能科技(北京)有限责任公司 Data writing method and device, electronic equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332939A1 (en) * 2011-05-25 2013-12-12 Arm Limited Data processing apparatus and method for processing a received workload in order to generate result data
US20140267272A1 (en) * 2013-03-15 2014-09-18 Przemyslaw Ossowski Conditional end of thread mechanism
US20170032488A1 (en) * 2015-07-30 2017-02-02 Arm Limited Graphics processing systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617384B1 (en) * 2006-11-06 2009-11-10 Nvidia Corporation Structured programming control flow using a disable mask in a SIMD architecture
US8719555B2 (en) * 2008-01-31 2014-05-06 Arm Norway As Method for overcoming livelock in a multi-threaded system
US8850436B2 (en) * 2009-09-28 2014-09-30 Nvidia Corporation Opcode-specified predicatable warp post-synchronization
US9535700B2 (en) * 2013-06-14 2017-01-03 Arm Limited Data processing systems
US9727341B2 (en) * 2014-05-09 2017-08-08 Samsung Electronics Co., Ltd. Control flow in a thread-based environment without branching
US10521875B2 (en) * 2017-04-01 2019-12-31 Intel Corporation Thread scheduling over compute blocks for power optimization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332939A1 (en) * 2011-05-25 2013-12-12 Arm Limited Data processing apparatus and method for processing a received workload in order to generate result data
US20140267272A1 (en) * 2013-03-15 2014-09-18 Przemyslaw Ossowski Conditional end of thread mechanism
US20170032488A1 (en) * 2015-07-30 2017-02-02 Arm Limited Graphics processing systems

Also Published As

Publication number Publication date
US10748236B2 (en) 2020-08-18
GB2566761A (en) 2019-03-27
GB201718157D0 (en) 2017-12-20
US20190087928A1 (en) 2019-03-21

Similar Documents

Publication Publication Date Title
GB201501397D0 (en) Image processing
SG11201704367QA (en) Processing chamber
GB201507009D0 (en) Processing a series of images to identify at least a portion of an object
GB2566761B (en) Discarding of threads processed by a warp processing unit
EP3156865C0 (en) Process monitoring and adaptive control of a machine tool
GB201604047D0 (en) Thread
HK1256910A1 (en) Loom for producing woven material, having incorporated knitting threads or cover threads
ZA201901620B (en) A treatment unit for in-line treatment of thread
SG11201707360PA (en) Picker
GB201513449D0 (en) Image processing
PT3162935T (en) Shedding machine and weaving loom comprising such a shedding machine
PT3162933T (en) Shedding machine
HK1225421B (en) Insertion system of the weft threads in a weaving loom
HUE046108T2 (en) Dough processing machine
PL3303192T3 (en) A singulating vibration feeder
ZAA201800668S (en) Processing machines
GB201414829D0 (en) Lignin processing
PL3374649T3 (en) Thread-forming screw
PT3009545T (en) Heddle for weaving loom and loom provided with such a heddle
HK1251628A1 (en) Mechanism for controlling the reciprocating movement of weft carrying grippers in a weaving loom
HK1231528A1 (en) Reed for air weaving looms
EP3512991C0 (en) Weft gripping mechanism for shuttleles weaving machines
HUE045288T2 (en) Dough processing machine
PL3120995T3 (en) Double-flighted thread pulp press screws
GB2544007B (en) Object guide having a variable motion path