On the Exploration of the DRISC Architecture

Total Page:16

File Type:pdf, Size:1020Kb

On the Exploration of the DRISC Architecture UvA-DARE (Digital Academic Repository) On the exploration of the DRISC architecture Yang, Q. Publication date 2014 Link to publication Citation for published version (APA): Yang, Q. (2014). On the exploration of the DRISC architecture. General rights It is not permitted to download or to forward/distribute the text or part of it without the consent of the author(s) and/or copyright holder(s), other than for strictly personal, individual use, unless the work is under an open content license (like Creative Commons). Disclaimer/Complaints regulations If you believe that digital publication of certain material infringes any of your rights or (privacy) interests, please let the Library know, stating your reasons. In case of a legitimate complaint, the Library will make the material inaccessible and/or remove it from the website. Please Ask the Library: https://uba.uva.nl/en/contact, or a letter to: Library of the University of Amsterdam, Secretariat, Singel 425, 1012 WP Amsterdam, The Netherlands. You will be contacted as soon as possible. UvA-DARE is a service provided by the library of the University of Amsterdam (https://dare.uva.nl) Download date:30 Sep 2021 Chapter 1 Introduction Contents 1.1 Background . 8 1.2 Multithreading . 8 1.3 Multiple cores . 10 1.4 What’s next . 11 1.5 Case study . 12 1.6 What have we done . 14 1.7 Overview and organization . 16 7 8 CHAPTER 1. INTRODUCTION 1.1 Background Moore’s law, first raised in 1965 [M 65] but later widely accepted as being “the number of transistors on integrated circuits+ doubles approximately every two year” (fig. 1.1), is steering the development of the semiconductor industry covering the capabilities of electronic devices like storage capacity, processing speed, etc. In the field of microprocessors, this is highly exemplified by the “Tick-Tock” paradigm of Intel (fig. 1.2). Before the dawn of this millennium, the increased density of transistors was chiefly devoted to more powerful uniprocessors. “Powerful” on one hand refers to techniques such as out-of-order (OoO) execution, branch prediction, specula- tion and multiple issue, accelerating the execution of sequential codes; on the other hand it refers to increasing the main frequency, e.g. extending the number of pipeline stages. The former suffers hardware complexity and insufficient ILP while both incur serious power dissipation and thermal problems. The resultant memory wall [WM95] (increasing memory access latency compared with decreas- ing execution time of a single instruction) and performance wall [AHKB00] (de- creasing performance benefits compared with increasing hardware costs and power consumption) mandate rethinking architecture design for sustainable, efficient per- formance improvement. One answer proves to be multithreading and later (with) multiple cores, although binary compatibility is not so easily attainable as it used to be from the perspective of performance scalability. 1.2 Multithreading As said in [BH95], independent streams of instructions, interwoven on a singe pro- cessor, fill its otherwise idle cycles and so boosts its performance; multithreading which exploits the higher Thread-Level Parallelism (TLP) starts a new way to achieve overall performance by interleaving threads to hide latency. The study of TLP dates back to late 1950s like [Bem57] and the first commer- cial multi-threaded system is the heterogeneous element processor (HEP) [Smi82] released in 1978. However such architectures began to thrive only since the late 1990s because of stalling ILP in OoO processors. Despite diverse accomplishments, two important keys to multithreading are how and when to perform thread inter- leaving, which also categorize multi-threaded systems into different classes. As the execution of a thread requires its own context consisting of a Program Counter (PC), state registers and stack frames, interleaving threads implies a con- text switch, namely context preservation and recovery. If such a switch is entirely conducted by software, this is known as software multithreading. Software mul- tithreading usually bears a higher switch overhead because it relies on accessing memory for context values, thus it is only suitable to infrequent switches; con- trarily if each thread has its unique inside-processor storages for context, this is known as Hardware Multithreading (HMT), which usually facilitates more fre- quent switching achieved at the cost of additional hardware investment (hence the design trade-off). For instance, HEP supports 50 hardware threads equipped with 2048 registers; while its descendent Tera MTA [ACC 90, AKK 95] and the latest Cray Thunderstorm processor [KV11] maintains 128+ hardware+ contexts backed with 128 register sets. 1.2. MULTITHREADING 9 Figure 1.1: The number of on-chip transistors scaling from 1971 to mid 20131. Decisions on when to start thread switches generally fall into three types: 1. fine-grained or interleaved multithreading. That is fetching one instruction from a thread in one cycle and switching to another thread in the next cycle to ensure fairness among threads. The exemplary architecture of this type is the often called barrel processor, where each thread is guaranteed to run one instruction every N cycles given N hardware contexts; meantime the execution speed of a single thread is always roughly 1 N of its original. This is improved later in [AKK 95] by scheduling only ready threads for better flexibility. + 2. coarse-grained or blocked multithreading. A thread emits instructions until a point is reached to trigger a switch. Such points can be either static, e.g. tags or switch instructions inserted by compilers, every branch or memory load instruction, or dynamic such as cache misses, traps or interruptions. Unlike interleaved multithreading, different threads often have different time slices for execution. 1This is a refined figure based on http://en.wikipedia.org/wiki/File:Transistor_Count_ and_Moore’s_Law_-_2011.svg. 2This is a refined figure based on http://commons.wikimedia.org/wiki/File: IntelProcessorRoadmap.svg. 10 CHAPTER 1. INTRODUCTION Figure 1.2: The evolution of Intel’s processors: shrunk process technology in the first “tick” year followed by the “tock” year with updated micro-architecture2. 3. Simultaneous Multithreading (SMT). It resembles the cycle-by-cycle switch of fine-grained multithreading but features multiple issue, i.e. several in- structions from different threads are issued to the pipeline in one cycle. This is usually built on top of superscalar processors to fill empty pipeline slots due to dependencies, and thus captures both inter-thread TLP and intra- thread ILP. The issue width of SMT processors is always moderate, i.e. 2 or 4 ways, and cannot be very large because of area costs e.g. the issue logic area grows as the square of the width [AHKB00, PBB 02] and that of regis- ter file has a cubic scaling [BDA01], and the subsequent+ power consumption moves the processor towards even lower performance efficiency. 1.3 Multiple cores In 2000, IBM announced the Power4, the first commercial multi-core microproces- sor that integrated two Power3 cores onto a single die. It was the kick-off of a new era that is investing transistors on additional CPUs (cores) inside the same chip. This was soon followed by other venders moving to multi-core instead of launch- ing more aggressive uni-core processors. However what a “core” is like manifests disparate design principles from different venders. One extreme can be found in the developing Oracle T-Series and the IBM Power-Series Chip Multiprocessors (CMP) that integrate 8 16 “fat” cores. Each core is enhanced with SMT as well as some other special function units (i.e. SPU in Oracle cores and Vector unit in Power cores) emphasizing∼ chip-level parallelism but retaining complex hardware circuits for ILP and assuring better performance of a single instruction stream. For example, the Oracle SPARC T5 [Ora13] claims 30% higher performance of a single thread compared with the previous generation. This is by and large regarded as latency-oriented. The other extreme is utilizing only simpler or “thin” cores. Each core supports massive hardware threads with trivial scheduling overheads in order to hide latency 1.4. WHAT’S NEXT 11 simply by thread interleaving, even to the point that hierarchical caches are not necessary. A trial of this is the early Niagara T1 [LLS06] that packs 8 cores of 32 threads. It featured fine-grained multi-threading not radical ILP techniques or a sizable amount of cache. The development of the Graphics Processing Unit (GPU) is much more aggressive. Taking NVidia’s Kepler GK110 [Nvi12] for example, it includes up to 15 streaming multiprocessors (SMX) primarily composed of integer and floating-point arithmetic logic; each SMX allows the concurrent issue and execution of 128 parallel threads and supports up to a maximum of 2048 threads. Consequently the GPU possesses superior advantages over its CMP rivals in terms of system throughout when solving problems exposing redundant parallelism, and such an achievement is devoid of a single thread’s performance [GK10]. Also it is less general-purpose in contrast with CMP. The deficiencies of the above two extremes motivate an alternative design— the “fused” microprocessor packaging “fat” CPU cores and GPU together. This is currently prompted by AMD’s APU and Intel’s Haswell for the purpose of smooth synergy between several x86 cores and a GPU on chip, yet it needs further im- provements to perfect the coordination and get rid of interconnection limitation [DAF11]. In fact,
Recommended publications
  • Antikernel: a Decentralized Secure Hardware-Software Operating
    Antikernel A Decentralized Secure Hardware-Software Operating System Andrew Zonenberg (@azonenberg) Senior Security Consultant, IOActive Bülent Yener Professor, Rensselaer Polytechnic Institute This work is based on Zonenberg’s 2015 doctoral dissertation, advised by Yener. IOActive, Inc. Copyright ©2016. All Rights Reserved. Kernel mode = full access to all state • What OS code needs this level of access? – Memory manager only needs heap metadata – Scheduler only needs run queue – Drivers only need their peripheral – Nothing needs access to state of user-mode apps • No single subsystem that needs access to all state • Any code with ring 0 privs is incompatible with LRP! IOActive, Inc. Copyright ©2016. All Rights Reserved. Monolithic kernel, microkernel, … Huge Huge attack surface Small Better 0 code size - Ring Can we get here? None Monolithic Micro ??? IOActive, Inc. Copyright ©2016. All Rights Reserved. Exokernel (MIT, 1995) • OS abstractions can often hurt performance – You don’t need a full FS to store temporary data on disk • Split protection / segmentation from abstraction Word proc FS Cache Disk driver DHCP server IOActive, Inc. Copyright ©2016. All Rights Reserved. Exokernel (MIT, 1995) • OS does very little: – Divide resources into blocks (CPU time quanta, RAM pages…) – Provide controlled access to them IOActive, Inc. Copyright ©2016. All Rights Reserved. But wait, there’s more… • By removing non-security abstractions from the kernel, we shrink the TCB and thus the attack surface! IOActive, Inc. Copyright ©2016. All Rights Reserved. So what does the kernel have to do? • Well, obviously a few things… – Share CPU time between multiple processes – Allow processes to talk to hardware/drivers – Allow processes to talk to each other – Page-level RAM allocation/access control IOActive, Inc.
    [Show full text]
  • Mali-400 MP: a Scalable GPU for Mobile Devices
    Mali-400 MP: A Scalable GPU for Mobile Devices Tom Olson Director, Graphics Research, ARM Outline . ARM and Mobile Graphics . Design Constraints for Mobile GPUs . Mali Architecture Overview . Multicore Scaling in Mali-400 MP . Results 2 About ARM . World’s leading supplier of semiconductor IP . Processor Architectures and Implementations . Related IP: buses, caches, debug & trace, physical IP . Software tools and infrastructure . Business Model . License fees . Per-chip royalties . Graphics at ARM . Acquired Falanx in 2006 . ARM Mali is now the world’s most widely licensed GPU family 3 Challenges for Mobile GPUs . Size . Power . Memory Bandwidth 4 More Challenges . Graphics is going into “anything that has a screen” . Mobile . Navigation . Set Top Box/DTV . Automotive . Video telephony . Cameras . Printers . Huge range of form factors, screen sizes, power budgets, and performance requirements . In some applications, a huge difference between peak and average performance requirements 5 Solution: Scalability . Address a wide variety of performance points and applications with a single IP and a single software stack. Need static scalability to adapt to different peak requirements in different platforms / markets . Need dynamic scalability to reduce power when peak performance isn’t needed 6 Options for Scalability . Fine-grained: Multiple pipes, wide SIMD, etc . Proven approach, efficient and effective . But, adding pipes / lanes is invasive . Hard for IP licensees to do on their own . And, hard to partition to provide dynamic scalability . Coarse-grained: Multicore . Easy for licensees to select desired performance . Putting cores on separate power islands allows dynamic scaling 7 Mali 400-MP Top Level Architecture Asynch Mali-400 MP Top-Level APB Geometry Pixel Processor Pixel Processor Pixel Processor Pixel Processor Processor #1 #2 #3 #4 CLKs MaliMMUs RESETs IRQs IDLEs MaliL2 AXI .
    [Show full text]
  • Nyami: a Synthesizable GPU Architectural Model for General-Purpose and Graphics-Specific Workloads
    Nyami: A Synthesizable GPU Architectural Model for General-Purpose and Graphics-Specific Workloads Jeff Bush Philip Dexter†, Timothy N. Miller†, and Aaron Carpenter⇤ San Jose, California †Dept. of Computer Science [email protected] ⇤ Dept. of Electrical & Computer Engineering Binghamton University {pdexter1, millerti, carpente}@binghamton.edu Abstract tempt to bridge this gap, Intel developed Larrabee (now called Graphics processing units (GPUs) continue to grow in pop- Xeon Phi) [25]. Larrabee is architected around small in-order ularity for general-purpose, highly parallel, high-throughput cores with wide vector ALUs to facilitate graphics rendering and systems. This has forced GPU vendors to increase their fo- multi-threading to hide instruction latencies. The use of small, cus on general purpose workloads, sometimes at the expense simple processor cores allows many cores to be packed onto a of the graphics-specific workloads. Using GPUs for general- single die and into a limited power envelope. purpose computation is a departure from the driving forces be- Although GPUs were originally designed to render images for hind programmable GPUs that were focused on a narrow subset visual displays, today they are used frequently for more general- of graphics rendering operations. Rather than focus on purely purpose applications. However, they must still efficiently per- graphics-related or general-purpose use, we have designed and form what would be considered traditional graphics tasks (i.e. modeled an architecture that optimizes for both simultaneously rendering images onto a screen). GPUs optimized for general- to efficiently handle all GPU workloads. purpose computing may downplay graphics-specific optimiza- In this paper, we present Nyami, a co-optimized GPU archi- tions, even going so far as to offload them to software.
    [Show full text]
  • Dynamic Task Scheduling and Binding for Many-Core Systems Through Stream Rewriting
    Dynamic Task Scheduling and Binding for Many-Core Systems through Stream Rewriting Dissertation zur Erlangung des akademischen Grades Doktor-Ingenieur (Dr.-Ing.) der Fakultät für Informatik und Elektrotechnik der Universität Rostock vorgelegt von Lars Middendorf, geb. am 21.09.1982 in Iserlohn aus Rostock Rostock, 03.12.2014 Gutachter Prof. Dr.-Ing. habil. Christian Haubelt Lehrstuhl "Eingebettete Systeme" Institut für Angewandte Mikroelektronik und Datentechnik Universität Rostock Prof. Dr.-Ing. habil. Heidrun Schumann Lehrstuhl Computergraphik Institut für Informatik Universität Rostock Prof. Dr.-Ing. Michael Hübner Lehrstuhl für Eingebettete Systeme der Informationstechnik Fakultät für Elektrotechnik und Informationstechnik Ruhr-Universität Bochum Datum der Abgabe: 03.12.2014 Datum der Verteidigung: 05.03.2015 Acknowledgements First of all, I would like to thank my supervisor Prof. Dr. Christian Haubelt for his guidance during the years, the scientific assistance to write this thesis, and the chance to research on a very individual topic. In addition, I thank my colleagues for interesting discussions and a pleasant working environment. Finally, I would like to thank my family for supporting and understanding me. Contents 1 INTRODUCTION........................................................................................................................1 1.1 STREAM REWRITING ...................................................................................................................5 1.2 RELATED WORK .........................................................................................................................7
    [Show full text]
  • An Overview of MIPS Multi-Threading White Paper
    Public Imagination Technologies An Overview of MIPS Multi-Threading White Paper Copyright © Imagination Technologies Limited. All Rights Reserved. This document is Public. This publication contains proprietary information which is subject to change without notice and is supplied ‘as is’, without any warranty of any kind. Filename : Overview_of_MIPS_Multi_Threading.docx Version : 1.0.3 Issue Date : 19 Dec 2016 Author : Imagination Technologies 1 Revision 1.0.3 Imagination Technologies Public Contents 1. Motivations for Multi-threading ................................................................................................. 3 2. Performance Gains from Multi-threading ................................................................................. 4 3. Types of Multi-threading ............................................................................................................ 4 3.1. Coarse-Grained MT ............................................................................................................ 4 3.2. Fine-Grained MT ................................................................................................................ 5 3.3. Simultaneous MT ................................................................................................................ 6 4. MIPS Multi-threading .................................................................................................................. 6 5. R6 Definition of MT: Virtual Processors ..................................................................................
    [Show full text]
  • C for a Tiny System Implementing C for a Tiny System and Making the Architecture More Suitable for C
    Abstract We have implemented support for Padauk microcontrollers, tiny 8-Bit devices with 60 B to 256 B of RAM, in the Small Device C Compiler (SDCC), showing that the use of (mostly) standard C to program such minimal devices is feasible. We report on our experience and on the difficulties in supporting the hardware multithreading present on some of these devices. To make the devices a better target for C, we propose various enhancements of the architecture, and empirically evaluated their impact on code size. arXiv:2010.04633v1 [cs.PL] 9 Oct 2020 1 C for a tiny system Implementing C for a tiny system and making the architecture more suitable for C Philipp Klaus Krause, Nicolas Lesser October 12, 2020 1 The architecture Padauk microcontrollers use a Harvard architecture with an OTP or Flash pro- gram memory and an 8 bit wide RAM data memory. There also is a third address space for input / output registers. These three memories are accessed using separate instructions. Figure 1 shows the 4 architecture variants, which are commonly called pdk13, pdk14, pdk15 and pdk16 (these names are different from the internal names found in files from the manufacturer-provided IDE) by the width of their program memory. Each instruction is exactly one word in program memory. Most instructions execute in a single cycle, the few excep- tions take 2 cycles. Most instructions use either implicit addressing or direct addressing; the latter usually use the accumulator and one memory operand and write their result into the accumulator or memory. On the pdk13, pdk14 and pdk15, the bit set, reset and test instructions, which use direct addressing, can only access the lower half of the data address space.
    [Show full text]
  • Antikernel: a Decentralized Secure Hardware-Software Operating System Architecture
    Antikernel: A Decentralized Secure Hardware-Software Operating System Architecture Andrew Zonenberg1 and B¨ulent Yener2 1 IOActive Inc., Seattle WA 98105, USA, [email protected] 2 Rensselaer Polytechnic Institute, Troy NY 12180, USA, [email protected] Abstract. The \kernel" model has been part of operating system ar- chitecture for decades, but upon closer inspection it clearly violates the principle of least required privilege. The kernel is a single entity which provides many services (memory management, interfacing to drivers, context switching, IPC) having no real relation to each other, and has the ability to observe or tamper with all state of the system. This work presents Antikernel, a novel operating system architecture consisting of both hardware and software components and designed to be fundamen- tally more secure than the state of the art. To make formal verification easier, and improve parallelism, the Antikernel system is highly modular and consists of many independent hardware state machines (one or more of which may be a general-purpose CPU running application or systems software) connected by a packet-switched network-on-chip (NoC). We create and verify an FPGA-based prototype of the system. Keywords: network on chip · system on chip · security · operating sys- tems · hardware accelerators 1 Introduction The Antikernel architecture is intended to be more, yet less, than simply a \ker- nel in hardware". By breaking up functionality and decentralizing as much as possible we aim to create a platform that allows applications to pick and choose the OS features they wish to use, thus reducing their attack surface dramati- cally compared to a conventional OS (and potentially experiencing significant performance gains, as in an exokernel).3 Antikernel is a decentralized architecture with no system calls; all OS func- tionality is accessed through message passing directly to the relevant service.
    [Show full text]
  • Programming the Cray XMT at PNNL
    21‐May‐12 What is parallel computing? Using multiple computing elements to solve a problem faster Multiple systems Multiple processors Multiple nodes Multiple cores Parallel computing is becoming ubiquitous due to power constraints Multiple cores rather than faster clock speeds Programming the Cray XMT Since cores share memory and programming cores as separate computing elements is too heavy weight, shared memory programming John Feo will become ubiquitous Director Center for Adaptive Supercomputing Software Intel 48‐core x86 processor AMD Athlon X2 6400+ dual‐core en.wikipedia.org/wiki/Multi‐core_processor www.pcper.com/reviews/Processors/Intel‐Shows‐48‐core‐x86‐Processor‐Single‐chip‐Cloud‐Computer May 21, 2012 1 Shared memory Hiding memory latencies The Good Memory hierarchy Read and write any data item C1 . Cn Reduce latency by storing some data nearby No partitioning No message passing Vectors L1 L1 Reads and write performed by Amortize latency by fetching N words at a time L2 L2 hardware Little overhead lower latency, Parallelism higher bandwidth Hide latency by switching tasks The Bad L3 Can also hide other forms of latencies Read and write any data item Race conditions Memory 4 1 21‐May‐12 Barrel processor Multithreading Many threads per processor core Hide latencies via parallelism Thread-level context switch at every instruction cycle Maintain multiple active threads per processor, so that gaps introduced by long latency operations in one thread are filled by instructions in other threads registers ALU “stream” program counter
    [Show full text]
  • Abstract PRET Machines
    Abstract PRET Machines Invited TCRTS award paper Edward A. Lee (award recipient) Jan Reineke Michael Zimmer UC Berkeley Saarland University Swarm64 AS Berkeley, CA 94720 Saarland Informatics Campus Berlin, Germany Email: [email protected] Saarbrucken,¨ Germany Email: [email protected] Email: [email protected] Abstract—Prior work has shown that it is possible to design stability is maintained if events occur within some specified microarchitectures called PRET machines that deliver precise latency after some stimulus. and repeatable timing of software execution without sacrificing No engineered system is perfect. No matter what specifica- performance. That prior work provides specific designs for PRET microarchitectures and compares them against conventional de- tions we use for what a “correct behavior” of the system is, signs. This paper defines a class of microarchitectures called there will always be the possibility that the realized system will abstract PRET machines (APMs) that capture the essential deviate from that behavior in the field. The goal of engineering, temporal properties of PRET machines. We show that APMs therefore, needs to be to clearly define what is a correct deliver deterministic timing with no loss of performance for a behavior, to design a system that realizes that behavior with family of real-time problems consisting of sporadic event streams with deadlines equal to periods. On the other hand, we observe high probability, to provide detectors for violations, and to a tradeoff between deterministic timing and the ability to meet provide safe fallback behaviors when violations occur. deadlines for sporadic event streams with constrained deadlines. A straightforward way to define correct behavior is to specify what properties the output of a system must exhibit for each possible input.
    [Show full text]
  • Concurrent Programming CLASS NOTES
    COMP 409 Concurrent Programming CLASS NOTES Based on professor Clark Verbrugge's notes Format and figures by Gabriel Lemonde-Labrecque Contents 1 Lecture: January 4th, 2008 7 1.1 Final Exam . .7 1.2 Syllabus . .7 2 Lecture: January 7th, 2008 8 2.1 What is a thread (vs a process)? . .8 2.1.1 Properties of a process . .8 2.1.2 Properties of a thread . .8 2.2 Lifecycle of a process . .9 2.3 Achieving good performances . .9 2.3.1 What is speedup? . .9 2.3.2 What are threads good for then? . 10 2.4 Concurrent Hardware . 10 2.4.1 Basic Uniprocessor . 10 2.4.2 Multiprocessors . 10 3 Lecture: January 9th, 2008 11 3.1 Last Time . 11 3.2 Basic Hardware (continued) . 11 3.2.1 Cache Coherence Issue . 11 3.2.2 On-Chip Multiprocessing (multiprocessors) . 11 3.3 Granularity . 12 3.3.1 Coarse-grained multi-threading (CMT) . 12 3.3.2 Fine-grained multithreading (FMT) . 12 3.4 Simultaneous Multithreading (SMT) . 12 4 Lecture: January 11th, 2008 14 4.1 Last Time . 14 4.2 \replay architecture" . 14 4.3 Atomicity . 15 5 Lecture: January 14th, 2008 16 6 Lecture: January 16th, 2008 16 6.1 Last Time . 16 6.2 At-Most-Once (AMO) . 16 6.3 Race Conditions . 18 7 Lecture: January 18th, 2008 19 7.1 Last Time . 19 7.2 Mutual Exclusion . 19 8 Lecture: January 21st, 2008 21 8.1 Last Time . 21 8.2 Kessel's Algorithm . 22 8.3 Brief Interruption to Introduce Java and PThreads .
    [Show full text]
  • Understanding SPARC Processor Performance
    Understanding SPARC Processor Performance MAY 15 & 16, 2019 CLEVELAND PUBLIC AUDITORIUM, CLEVELAND, OHIO WWW.NEOOUG.ORG/GLOC About the Speaker • Akiva Lichtner • Physics background • Twenty years experience in IT • Enterprise production support analyst • Java developer • Oracle query plan manager … • Spoke here at G.L.O.C. about TDD and Java dynamic tracing Audience • Developers • System administrators • Tech support analysts • IT managers Motivation • I have been working in tech support for a large application • We have run SPARC T4 servers and now we run T7 servers • Application servers, database servers • Environments are all different • Users complained for years about “environment X” being slow, finally figured out why • What I learned can be very useful for users of SPARC servers What is SPARC? • First released in 1987, created by Sun Microsystems to replace the Motorola 68000 in its workstation products • During the .com boom Solaris/SPARC and Windows/Intel were the only supported platforms for the JVM • In 2000 the bubble burst and Sun server sales plunged • Sun acquired Afara Websystems, which had built an interesting new processor, and renamed it the UltraSPARC T1 • Was followed by T2 through M8, evolutions of the same design • More recently Oracle has added significant new functionality Processor Design • High core count (even in the early days) • Many threads per core • “Barrel” processor • Designed to switch efficiently • Non-uniform memory access • Per-processor shared cache • Core-level shared cache A picture speaks a thousand
    [Show full text]
  • 18-643 Lecture 11: Intel Opencl for FPGA
    18-643 Lecture 11: Intel OpenCL for FPGA Shashank Obla Department of ECE Carnegie Mellon University 18-643-F20-L11-S1, James C. Hoe, CMU/ECE/CALCM, ©2020 Housekeeping • Your goal today: understand Intel’s interpretation of OpenCL for FPGAs • Notices – Handout #6: lab 2, due Monday noon, 10/12 – Handout #7: lab 3 (look for on Friday) – Project status report due each Friday 3 weeks to project proposal!! • Readings – skim Ch 10, Reconfigurable Computing – for concrete reference: Intel SDK for OpenCL: Programming Guide and Best Practices Guide 18-643-F20-L11-S2, James C. Hoe, CMU/ECE/CALCM, ©2020 Khronos’ OpenCL 18-643-F20-L11-S3, James C. Hoe, CMU/ECE/CALCM, ©2020 Two Parts to OpenCL 1. Platform model – host (processor & memory) – 1 or more accelerator devices + device-side mem hierarchy: global/local/private – APIs for host-thread to interact with devices • launch compute kernels to devices • prepare (load/unload) device memory 2. Kernel programming language – perfect triply-nested loops – no loop-carried dependence 18-643-F20-L11-S4, James C. Hoe, CMU/ECE/CALCM, ©2020 OpenCL terms introduced in bold OpenCL Platform Model host global compute CPU mem device compute host global devicecompute mem mem devicecompute device 18-643-F20-L11-S5, James C. Hoe, CMU/ECE/CALCM, ©2020 What are these “compute devices”??? Basic Host Program Example main ( ) { . get device handle and queue . allocate memory buf objects . get kernel object. while ( ) { . initialize memory buf data . bind buf objects to kernel arguments . add kernel and buf objects to device queue . wait for kernel to finish . retrieve memory buf object for result .
    [Show full text]