Introduction COMPUTER ARCHITECTURES COMPUTER

Introduction COMPUTER ARCHITECTURES COMPUTER

Advanced Architectural Features Advanced Architectural Features Introduction Recap Multi-core hardware is becoming prevalent, and is tightly Theme: Towards Reconfigurable High-Performance Computing couple d w ith the so ftware w hic h dr ives it Lecture 3 Objectives: Platforms I: Advanced Architectural Features Explain key architectural concepts Discuss x86 architectural extensions Discover interesting multi-core designs and interconnects Andrzej Nowak CERN openlab (Geneva, Switzerland) Contents: Systems architecture basics Instruction set extensions Compilers and parallelism Inverted CERN School of Computing, 3-5 March 2008 Advanced multi-core architecture discussion 1 iCSC2008, Andrzej Nowak, CERN openlab 2 iCSC2008, Andrzej Nowak, CERN openlab Advanced Architectural Features Advanced Architectural Features Von Neumann architecture Input Arithmetic Control Unit Logic Unit CPU COMPUTER ARCHITECTURES And their extensions Output Memory 3 iCSC2008, Andrzej Nowak, CERN openlab 4 iCSC2008, Andrzej Nowak, CERN openlab Towards Reconfigurable High-Performance Computing Lecture 3 iCSC 2008 3-5 March 2008, CERN Platforms I: Advanced Architectural Features 1 Advanced Architectural Features Advanced Architectural Features Flynn’s taxonomy (1) Flynn’s taxonomy (2) SISD – Single Instruction, Single Data MISD – Multiple Instruction, Single Data Classical Von Neumann’s model Redundant systems, pipeline systems (disputable) SIMD – Single Instruction, Multiple Data MIMD – Multiple Instruction, Multiple Data A GPU Distributed systems 5 iCSC2008, Andrzej Nowak, CERN openlab 6 iCSC2008, Andrzej Nowak, CERN openlab Advanced Architectural Features Advanced Architectural Features X86 architectural extensions MMX Extensions in Intel CPUs: Intel’s first attempt at adding SIMD capabilities to their CPUs; FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4 (SSE4.1 + introduced in 1997 SSE4. 2), SSE5, EM64T Packet data type concept Extensions in AMD CPUs: 64 bits = 2x 32bits = 4x 16bits = 8x 8bits AMD (pre K6), MMX, SSE, SSE2, SSSE3, SSE4, 3DNow!, 8 “new” 64bit integer registers – MM0 … MM7 (mapped onto 3DNow!+, 3DNow! Professional (SSE + 3DNow!) x87 the stack) Understanding SIMD extension history is helpful in Major flaws: understanding modern vector instructions floatinggp point and SIMD could not be used at the same time integer operations only Embedded XScale CPUs (ARM family) use iwMMXt – Intel Wireless MMX Technology 64 bit packed data type 16 data regs, 8 control regs 7 iCSC2008, Andrzej Nowak, CERN openlab 8 iCSC2008, Andrzej Nowak, CERN openlab Towards Reconfigurable High-Performance Computing Lecture 3 iCSC 2008 3-5 March 2008, CERN Platforms I: Advanced Architectural Features 2 Advanced Architectural Features Advanced Architectural Features SSE 3DNow!, AltiVec Introduced in 1999 with the Pentium III, 70 new instructions 3DNow! stands for AMD extensions to MMX, introduced in 1998 Fixed the 2 main MMX deficiencies 32-bit FP support Some instructions from this family were added to the Pentium III as SSE 8 truly new 128-bit registers – XMM0 … XMM7 – 4x 32-bit float Later upgraded to 3DNow!+ Later on, another 8 registers added AltiVec – Apple and IBMs vector extensions for PowerPC FP Instructions: Developed between 1996 and 1998 Data movement (M->R, R->M, R->R) Also known as “Velocity Engine” (Apple) and “VMX” (IBM) Arithmetic, bitwise, comparison Widely used by Apple in their flagship applications, as well as 3rd party Data shuffling, data unpacking, simple data type conversion developers such as Adobe Technical details INT instructions: simple arithmetic and movement 32 128-bit vector registers (can be split up into 8, 16 or 32 bit pieces) Flaws: Three register operands Register states had to be saved “manually” by the OS Support for a special RGB data type, which does not map onto 64-bit floats Execution resources shared with the FPU easily The IBM CELL supports AltiVec, as well as the IBM Power6 AMD introduced SSE in AthlonXPs (Palomino – 2001) 9 iCSC2008, Andrzej Nowak, CERN openlab 10 iCSC2008, Andrzej Nowak, CERN openlab Advanced Architectural Features Advanced Architectural Features SSE2 SSE3, SSSE3 Introduced with the Pentium 4 in 2001, 144 new instructions SSE3 introduced in 2004 in the Pentium 4 (“Prescott” – hence the a.k.a. name “PNI”) Technical details: 8 registers SSE3 Technical details: 64-bit floating point Horizontal operations portfolio expanded, i.e. add/subtract Minimized cache pollution elements in a single vector More sophisticated format conversions Improved misaligned data loading Extended MMX instructions allow operation on XMM registers FP -> Int conversion simplified SSSE3 is really a new iteration, introduced in Intel Core Flaws: chips Accessing misaligned data introduces a penalty 16 new instructions – some packed and horizontal operations Unimpressive throughput compared to MMX No new registers AMD introduced SSE2 in 2003 in the Athlon64 and Opteron Operates on MMX or XMM registers families Unsupported in AMD chips 8 additional registers 11 iCSC2008, Andrzej Nowak, CERN openlab 12 iCSC2008, Andrzej Nowak, CERN openlab Towards Reconfigurable High-Performance Computing Lecture 3 iCSC 2008 3-5 March 2008, CERN Platforms I: Advanced Architectural Features 3 Advanced Architectural Features Advanced Architectural Features SSE4 SSE5 54 new instructions introduced publicly in 2007 AMD specific – a 128-bit extension of a 64-bit extension to SSE4.1: 47, SSE4.2: 7 (only in Nehalem) the 32-bit original x86 instruction set; targeted for 2009 Technical details: 170 new instructions, targeting: No new data types, no new registers HPC Compiler vectorization improved Multimedia Significant packed dword computation improvement Security applications Some instructions are not multimedia related Features: Some instructions take an imppplicit third operand 3 operand ops You can use SSE4 with Intel compilers from version 10.0 Fused instructions onwards MADD instructions SSE5 software simulator Image: AMD 13 iCSC2008, Andrzej Nowak, CERN openlab 14 iCSC2008, Andrzej Nowak, CERN openlab Advanced Architectural Features Advanced Architectural Features AMD x86-64 (a.k.a. EM64T or AMD Lightweight Profiling Intel64) Roles reversed – Intel had to follow AMD’s lead Only 2 new instructions Enable/disable profiling 64-bit operations fully supported Retrieve results Arithmetic Registers No interrupts needed (current situation is the opposite) Virtual addresses Profiling on the fly supported Expanded virtual and physical address space Drawbacks: New silicon needed SSE, SSE2 and SSE3 (Intel) instructions included Profiling on the fly might not be that easy due to OS designs Cleanups Introduced no sooner than late 2008-2009 There are some differences between AMD’s and Intel’s We already know that upcoming Performance Monitoring implementations Units will not differ greatly from what we have today 15 iCSC2008, Andrzej Nowak, CERN openlab 16 iCSC2008, Andrzej Nowak, CERN openlab Towards Reconfigurable High-Performance Computing Lecture 3 iCSC 2008 3-5 March 2008, CERN Platforms I: Advanced Architectural Features 4 Advanced Architectural Features Advanced Architectural Features AMD Extensions for Software X86 extensions summary Parallelism No details yet, apart from the fact that this extension will During the last 10 years: upgrade the existing x86 instruction set We’ve moved from simple 32-bit integer operations to complex 64-bit packed and floating point instructions The instruction set and surrounding optimizations will be We’ve received some dedicated hardware for the extensions “broad”, AMD says in question We’ve moved from 32-bit to 64-bit – more throughput, but Analysts say that this feature might have a profound impact more memory used as well on the processor industry The future: Non x86 architectures The LRB ins truc tion se t X86 derived Mostly multimedia As always, manuals from Intel or AMD will come in handy when programming using extensions 17 iCSC2008, Andrzej Nowak, CERN openlab 18 iCSC2008, Andrzej Nowak, CERN openlab Advanced Architectural Features Advanced Architectural Features The Core 2 issue ports Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 Integer Integer Integer Store Store Integer ALU ALU Load Address Data ALU Int. SIMD Int. SIMD FP Int. SIMD ALU MUL Load ALU SSE FSS Move FP ADD FP MUL & Logic 80 bit Shuffle PARALLEL PROGRAMMING FP MUL And the missing golden bullet for the gun of multi-core FSS Move FSS Move Jump & Logic & Logic FP – Floating Point exec unit FSS – FP, SIMD, SSE 64 bit 64 bit MUL - Multiply shuffle shuffle Image: based on Sverre Jarp’s work 19 iCSC2008, Andrzej Nowak, CERN openlab 20 iCSC2008, Andrzej Nowak, CERN openlab Towards Reconfigurable High-Performance Computing Lecture 3 iCSC 2008 3-5 March 2008, CERN Platforms I: Advanced Architectural Features 5 Advanced Architectural Features Advanced Architectural Features Instruction layout (Core 2) Common parallel programming libraries (1) Pthreads, Windows threads Fine grained control Lightweight Cycle Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 Shared memory only 1 load point[0] OS dependent 2 load origin[0] Often painful to debug 3 4 OpenMP 5 A simple set of #pragma extensions 6 subsd load float-packet Several languages supported: C, C++, Fortran 7 Several implementations exist – compiler dependent 8 load xhalfsz Gcc 4.2 and ICC support OpenMP 9 10 andpd Several data scopes and scheduling models available 11 Can be used in a hybrid

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us