Gamma Correction Using ARM Neon

Total Page:16

File Type:pdf, Size:1020Kb

Gamma Correction Using ARM Neon Tegra Xavier Introduction to ARMv8 Kristoffer Robin Stokke, PhD Dolphin Interconnect Solutions And Debugging Goals of Lecture qTo give you q Something concrete to start on q Some examples from «real life» where you may encounter these topics qEvery year I try to include something new... q Which means more freebees for you! J qSimple introduction to ARMv8 NEON programming environment q Register environment, instruction syntax q «Families» of instructions q Important for debugging, writing code and general understanding qProgramming examples q Intrinsics q Inline assembly qPerformance analysis using gprof qIntroduction to GDB debugging Keep This Under Your Pillow qARM’s overview and information on NEON instructions q https://developer.arm.com/documentation/dui0204/j/neon-and-vfp-programming qGNU compiler intrinsics list: q https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/ARM-NEON-Intrinsics.html qSome non-formal calling conventions and snacks q https://medium.com/mathieugarcia/introduction-to-arm64-neon-assembly-930c4a48bb2a qThis may also be useful q https://community.arm.com/developer/tools-software/oss-platforms/b/android-blog/posts/arm- neon-programming-quick-reference Modern Heterogeneous SoC Architectures Manufacturer CPU CPU Cache RAM GPU DSP Hardware Accelerators Tegra X1 Nvidia 4 ARM Cortex 2 MB L2, 4 GB 256-core - • ISP A57 + 4 A53 48 kB I$ Maxwell 32 kB D$ (L1) Tegra Xavier Nvidia 8 CarMel 2 MB L3 (shared) 16 GB 512-core Volta - • CNN ARMv8 8 MB L2 (shared 2 Blocks cores) • ISP 128 kB I$ 64 kB D$ Myriad X Intel Movidius 2 SPARC Kilobytes 4 GB - 16 VLIW cores • ISP • CNN Blocks • ++ More SDA845 QualcoMM 8 Kryo ARM- 8 GB Adreno GPU Hexagon VLIW • ISP based + SIMD • LTE IMX6Q Freescale 4 ARM Cortex 1 MB L2 Impl. «3D graphics» (NXP) A-9 Dep. 02.02.2021 5 Tegra Xavier CPU Cache Hierarchy • ARM 8.2 Cores (Carmel) Core Core • (Half-precision floating point!) • SIMD! 128kB $I 128kB $I 64 kB $D 64 kB $D • 64 kB L1 Cache • Per core 4 MB L2 Cache way 2 MB L3 Cache • 4 MB L2 Cache this • Per dual Faster Faster • 2 MB L3 Cache 16 GB RAM • Shared between all cores • Least recently used eviction strategy (LRU) 02.02.2021 6 CPU Hierarchies and Performance • Let’s do an experiment! ☺J CPU Core • Reading or writing 800 MB 20k Loops @ 40 kB • Vary the size to read back-to-back L1 64 kB – E.g. read 24 kB repeatedly from same 40k Loops buffer, until 800 MB have been read @ 80 kB L2 4 MB • Buffersize detemines location of data • Under ideal conditions (no contention..) 100 Loops – Below 50kB, all reads are cached in L1 @ 8 MB – Below 4 MB, all reads are cached in L2 L2 4 MB – Above 6 MB... Nothing gets cached 02.02.2021 7 Code Example and Profiling • CoMpile with –pg • Run app: ./main • Analyze – Gprof ./main gmon.out Read Write • NB:Prefetch op – PrfM <type><target><policy> reg|label L1 20 ms 30 ms – Type • pld (for load) L2 70 ms 70 ms • pst (for store) • pli (for instruction) RAM 220 ms 180 ms • Target – L1 or L2 (or L3) – Policy • keep (normal) • streaM (use once) • prfM pldl1keep[x0] (address in x0) 02.02.2021 8 ARMv8 Registers 31 x 64-bit general purpose registers X0 X8 x16 x24 32 x 128-bit vector registers V0 V8 V16 V24 SP WZR Stack pointer Zero registers PC WSP XZR The Vector Registers V0-V31: Packing q Data in V0-V31 are packed, and you control how they are packed Example: 16 bytes or 8 bytes Lanes Example: 8 half-words or 4 half-words Intrinsics, Inline Assembly or Assembly? Inline Intrinsics Assembly Assembly • You will need to understand !"#$" 40"56$9,3#:"*&; assembly40"56$9,3#:"*&; to !%&' !()*+%),-*.+)#/#)#'#0"1 <<,=*,1".>>,*0,3#:"*& • Debug<<,=*,1".>>,*0,3#:"*& your program -*.+)#/#)#'#0"12 • Understand how to use 3%--!456,37837837, G#:"*&,H,3%--E/156?3#:"*&8,3#:"*&F //%1'//? +$,)& intrinsics@3%-- A3B!1C8,A3B!1C8,A3B!1CD correctly !#0- 2,2,A3#:"*&B,@ED,?3#:"*&F,2,F Goes inside C functions Goes inside C functions Goes in .s file Level of Difficulty 02.02.2021 11 Data Types C World Assembly World uint8x8_t v0.8b Vector registers are specified by the 8-bit unsigned integer 8 elementsfollowing: 8B/16B/4H/8H/2S/4S/2D uint8x16_t v0.16b B: bytes H: half-word (16-bit) 8-bit unsigned integer 16 S:elements word (32-bit) D: doubleword (64-bit) float32x2_t v0.2s An S-vector can therefor occupy signed or unsigned integers, or floating point values. 32-bit floating point 2 elements Meaning is encoded in the assembly float32x4_t v0.4s instruction or intrinsic, when needed. 32-bit floating point 4 elements 02.02.2021 12 Example: Loading or Storing Something void * inp = malloc( 64 ) char * inp = malloc( 64 ) __asm__( uint8x16_t vectors[4]; «ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [%[inp]]» : : [inp] «r» (inp)) for(i=0; i < 4; i++) vectors[i] = vld1q_u8(inp + i*16) void * out = malloc( 64 ) char * inp = malloc( 64 ) __asm__( uint8x16_t vectors[4]; // Assume we have done something // intelligent with v0, v1, v2 and v3 for(i=0; i < 4; i++) vst1q_u8(inp + i*16, vectors[i]) «st1 {v0.16b, v1.16b, v2.16b, v3.16b}, [%[out]]» : : [out] «r» (out) : «memory») 02.02.2021 13 How Does Intrinsics Map to Assembly? • If you want to write some piece of inline assembly – But compiler spits out errors and you don’t know the syntax • Try to write it by intrinsics – Then objdump –D <your executable> | less – Type /<insert_your_function_name> + hit return and search • Alternatively – Gdb <your executable> – Break <your_source_file>.c:<your_line_number> – Type run -> enter – Layout asm -> inspect 02.02.2021 14 Example: Loading or Storing Something • There are vector types and intrinsics char * inp = malloc( 64 ) for clustered vectors • In this case, four 128-bit registers For(i=0; i < 64; i++) inp[i] = i; // Contents are consecutive in memory.. • Be careful! Uint8x16x4 vectors; vectors = vld4q(inp); • Compiler seems to rearrange the contents in some unintuitive way // Contents are not consecutive in vectors!! 02.02.2021 15 Example: Vector Packing Data types Size Bytes 1B Half-words 2B Words 4B Double words 8B Half precision 2B Single precision 4B Double precision 8B Other Examples int8x16_t v0; int8_t init = 0; int16x4_t v0, v1; v0 = vdupq_n_s8(init); Int16x4_t result; Initialise all lanes result = vadd_s16(v0, v1) result = vsub_s16(v0, v1) result = vmul_s16(v0, v1) Float32x4_t v0; Addition, subtraction and multiplication Float32_t val; Val = vgetq_lane_f32(v0, 0) Val += 42.0F; Uint32x4_t v0; V0 = vsetq_lane_f32(val, v0, 0) float32_x4_t result; Result = vcvtq_f32_u32( v0 ) Get and set a specific lane Convert unsigned int to float 02.02.2021 17 Programming With Intrinsics More in a bit! Programming Example: Intrinsics Inline Assembly q Mostly harder than using intrinsics qHowever, gives more control (and better performance?) q Not always straightforward to figure out what mnemonics to use qTips: disassemble intrinsics and look with objdump or gdb Operand constraints > «m» : memory address > «r» : general purpose register > «f» : floating point register > «i» : immediate ++ more Specify dirty registers and more Programming Example: Inline Assembly Lookup Tables (LUT) • Powerful approximation • Use LUTs to realise complex mathematics! • For example prime numbers.. • Some “index” points into a LUT offset that contains precomputed values • Output stored in a vector 7 5 3 3 2 5 Index «vector» LUT Output «vector» (four-element) 02.02.2021 22 Table Lookup in ARM Neon qVector table lookup: vtbl v0, {v1, v2, ..., vn}, vm Two flavours: qV0: destination vector q{v1, v2}: LUTvtbl (max 2x128-bit vectors!!) qvm: index vectorAny element out of range for LUT returns 0 vtbx v0 Any element out of range0 for LUT15 leaves16 the 31 destination unchanged v1 v2 0 8 4 6 0 8 4 6 0 18 4 18 24 25 14 19 vm • Let’s try to use LUTs to transpose matrices. • Don’t go thinking 4x4 or 8x8. – Start easy, then let’s see if we can observe any patterns. 02.02.2021 24 Matrix Transpose (Super Simple) Stride = 1 Destination Vector a a a LUT (matrix) a stride Index Vector 0 2x2 matrix, stride = 2 Destination a c b d a b a c Vector c d b d LUT (matrix) a b c d stride Index Vector 0 2 1 3 stride 3x3 matrix, stride = 3 a b c a d g Destination a d g b e h c f i d e f b e h Vector g h i c f i LUT stride (matrix) a b c d e f g h i Index 0 3 6 1 4 7 2 5 8 Vector stride How to think? • For the «first output row» = 0 – Element output n is taken from n*stride in «input matrix» • For the “next row” = 1 – Element output n is taken from n*stride + 1 • So generally, for output element n in output row i – Element is taken from n*stride + i 02.02.2021 28 Matrix Transpose Example 02.02.2021 29 The Gamma Transform • Human eye is sensitive to variation in luminance • The gamma transform.. – «stretches» small variations in luminance – Can make it easier to see detail • Gamma is also used to adjust for non-linearity in old monitors – Image data is actually transmitted to the display with gamma applied to it as a form of «back compatibility» – Which is extremely confusing – Google «gamma correction explained» and watch the madness 02.02.2021 30 The Gamma Transform � = 1 1 1 � = 2.2 Output luminance value Output value ! � = � , � ∈ [0,1] Resulting larger change in luminance � = 2.2 Input luminance value 0 Input Value 1 Small change in luminance 02.02.2021 https://wolfcrow.com/what-is-display-gamma-and-gamma-correction/ 31 Higher gamma compresses the low-lights, but extends high-lights 1 � = � = 1.0 � = 2.2 2.2 Lower gamma compresses the high-lights, but extends the low-lights 02.02.2021 32 Non-Temporal Loads and Stores • Reading remote RAM from PCIe • Very slow due to core is hanging while datapath is fetching CPU RAM response
Recommended publications
  • GPU Developments 2018
    GPU Developments 2018 2018 GPU Developments 2018 © Copyright Jon Peddie Research 2019. All rights reserved. Reproduction in whole or in part is prohibited without written permission from Jon Peddie Research. This report is the property of Jon Peddie Research (JPR) and made available to a restricted number of clients only upon these terms and conditions. Agreement not to copy or disclose. This report and all future reports or other materials provided by JPR pursuant to this subscription (collectively, “Reports”) are protected by: (i) federal copyright, pursuant to the Copyright Act of 1976; and (ii) the nondisclosure provisions set forth immediately following. License, exclusive use, and agreement not to disclose. Reports are the trade secret property exclusively of JPR and are made available to a restricted number of clients, for their exclusive use and only upon the following terms and conditions. JPR grants site-wide license to read and utilize the information in the Reports, exclusively to the initial subscriber to the Reports, its subsidiaries, divisions, and employees (collectively, “Subscriber”). The Reports shall, at all times, be treated by Subscriber as proprietary and confidential documents, for internal use only. Subscriber agrees that it will not reproduce for or share any of the material in the Reports (“Material”) with any entity or individual other than Subscriber (“Shared Third Party”) (collectively, “Share” or “Sharing”), without the advance written permission of JPR. Subscriber shall be liable for any breach of this agreement and shall be subject to cancellation of its subscription to Reports. Without limiting this liability, Subscriber shall be liable for any damages suffered by JPR as a result of any Sharing of any Material, without advance written permission of JPR.
    [Show full text]
  • Sensors and Data Encryption, Two Aspects of Electronics That Used to Be Two Worlds Apart and That Are Now Often Tightly Integrated, One Relying on the Other
    www.eenewseurope.com January 2019 electronics europe News News e-skin beats human touch Swedish startup beats e-Ink on low-power Special Focus: Power Sources european business press November 2011 Electronic Engineering Times Europe1 181231_8-3_Mill_EENE_EU_Snipe.indd 1 12/14/18 3:59 PM 181231_QualR_EENE_EU.indd 1 12/14/18 3:53 PM CONTENTS JANUARY 2019 Dear readers, www.eenewseurope.com January 2019 The Consumer Electronics Show has just closed its doors in Las Vegas, yet the show has opened the mind of many designers, some returning home with new electronics europe News News ideas and possibly new companies to be founded. All the electronic devices unveiled at CES share in common the need for a cheap power source and a lot of research goes into making power sources more sus- tainable. While lithium-ion batteries are commercially mature, their long-term viability is often questioned and new battery chemistries are being investigated for their simpler material sourcing, lower cost and sometime increased energy density. Energy harvesting is another feature that is more and more often inte- e-skin beats human touch grated into wearables but also at grid-level. Our Power Sources feature will give you a market insight and reviews some of the latest findings. Other topics covered in our January edition are Sensors and Data Encryption, two aspects of electronics that used to be two worlds apart and that are now often tightly integrated, one relying on the other. Swedish startup beats e-Ink on low-power With this first edition of 2019, let me wish you all an excellent year and plenty Special Focus: Power Sources of new business opportunities, whether you are designing the future for a european business press startup or working for a well-established company.
    [Show full text]
  • Hardware-Assisted Rootkits: Abusing Performance Counters on the ARM and X86 Architectures
    Hardware-Assisted Rootkits: Abusing Performance Counters on the ARM and x86 Architectures Matt Spisak Endgame, Inc. [email protected] Abstract the OS. With KPP in place, attackers are often forced to move malicious code to less privileged user-mode, to ele- In this paper, a novel hardware-assisted rootkit is intro- vate privileges enabling a hypervisor or TrustZone based duced, which leverages the performance monitoring unit rootkit, or to become more creative in their approach to (PMU) of a CPU. By configuring hardware performance achieving a kernel mode rootkit. counters to count specific architectural events, this re- Early advances in rootkit design focused on low-level search effort proves it is possible to transparently trap hooks to system calls and interrupts within the kernel. system calls and other interrupts driven entirely by the With the introduction of hardware virtualization exten- PMU. This offers an attacker the opportunity to redirect sions, hypervisor based rootkits became a popular area control flow to malicious code without requiring modifi- of study allowing malicious code to run underneath a cations to a kernel image. guest operating system [4, 5]. Another class of OS ag- The approach is demonstrated as a kernel-mode nostic rootkits also emerged that run in System Manage- rootkit on both the ARM and Intel x86-64 architectures ment Mode (SMM) on x86 [6] or within ARM Trust- that is capable of intercepting system calls while evad- Zone [7]. The latter two categories, which leverage vir- ing current kernel patch protection implementations such tualization extensions, SMM on x86, and security exten- as PatchGuard.
    [Show full text]
  • Arxiv:1910.06663V1 [Cs.PF] 15 Oct 2019
    AI Benchmark: All About Deep Learning on Smartphones in 2019 Andrey Ignatov Radu Timofte Andrei Kulik ETH Zurich ETH Zurich Google Research [email protected] [email protected] [email protected] Seungsoo Yang Ke Wang Felix Baum Max Wu Samsung, Inc. Huawei, Inc. Qualcomm, Inc. MediaTek, Inc. [email protected] [email protected] [email protected] [email protected] Lirong Xu Luc Van Gool∗ Unisoc, Inc. ETH Zurich [email protected] [email protected] Abstract compact models as they were running at best on devices with a single-core 600 MHz Arm CPU and 8-128 MB of The performance of mobile AI accelerators has been evolv- RAM. The situation changed after 2010, when mobile de- ing rapidly in the past two years, nearly doubling with each vices started to get multi-core processors, as well as power- new generation of SoCs. The current 4th generation of mo- ful GPUs, DSPs and NPUs, well suitable for machine and bile NPUs is already approaching the results of CUDA- deep learning tasks. At the same time, there was a fast de- compatible Nvidia graphics cards presented not long ago, velopment of the deep learning field, with numerous novel which together with the increased capabilities of mobile approaches and models that were achieving a fundamentally deep learning frameworks makes it possible to run com- new level of performance for many practical tasks, such as plex and deep AI models on mobile devices. In this pa- image classification, photo and speech processing, neural per, we evaluate the performance and compare the results of language understanding, etc.
    [Show full text]
  • Gables: a Roofline Model for Mobile Socs
    2019 IEEE International Symposium on High Performance Computer Architecture (HPCA) Gables: A Roofline Model for Mobile SoCs Mark D. Hill∗ Vijay Janapa Reddi∗ Computer Sciences Department School Of Engineering And Applied Sciences University of Wisconsin—Madison Harvard University [email protected] [email protected] Abstract—Over a billion mobile consumer system-on-chip systems with multiple cores, GPUs, and many accelerators— (SoC) chipsets ship each year. Of these, the mobile consumer often called intellectual property (IP) blocks, driven by the market undoubtedly involving smartphones has a significant need for performance. These cores and IPs interact via rich market share. Most modern smartphones comprise of advanced interconnection networks, caches, coherence, 64-bit address SoC architectures that are made up of multiple cores, GPS, and many different programmable and fixed-function accelerators spaces, virtual memory, and virtualization. Therefore, con- connected via a complex hierarchy of interconnects with the goal sumer SoCs deserve the architecture community’s attention. of running a dozen or more critical software usecases under strict Consumer SoCs have long thrived on tight integration and power, thermal and energy constraints. The steadily growing extreme heterogeneity, driven by the need for high perfor- complexity of a modern SoC challenges hardware computer mance in severely constrained battery and thermal power architects on how best to do early stage ideation. Late SoC design typically relies on detailed full-system simulation once envelopes, and all-day battery life. A typical mobile SoC in- the hardware is specified and accelerator software is written cludes a camera image signal processor (ISP) for high-frame- or ported.
    [Show full text]
  • VIV:Vivo-X60-5G-Phone Datasheet Overview
    VIV:vivo-X60-5G-Phone Datasheet Get a Quote Overview Note: Shipment will start on January 10. Vivo X60 5G, samsung Exynos 1080 flagship chip, zeiss optical lens, micro-head black light night market 2.0 Compare to Similar Items Table 2 shows the comparison. Product Code Vivo X50 5G Phone Vivo X60 5G Phone Front Camera 32 MP 8 MP Battery 4200 mAh 4500 mAh Processor Qualcomm Snapdragon 765G Exynos 880 Display 6.56 inches 6.53 inches Ram 8 GB 6 GB Rear Camera 48 MP + 13 MP + 8 MP + 5 MP 48 MP + 2 MP + 2 MP Fingerprint Sensor Position On-screen Side Fingerprint Sensor Type Optical \ Other Sensors Light sensor, Proximity sensor, Accelerometer, Acceleration, Proximity, Compass Compass, Gyroscope Fingerprint Sensor Yes Yes Quick Charging Yes \ Operating System Android v10 (Q) \ Sim Slots Dual SIM, GSM+GSM Dual SIM, GSM+GSM Custom Ui Funtouch OS \ Brand Vivo Vivo Sim Size SIM1: Nano SIM2: Nano SIM1: Nano, SIM2: Nano Network 5G: Supported by device (network not rolled- 5G: Supported by device (network not rolled- out in India), 4G: Available (supports Indian out in India), 4G: Available (supports Indian bands), 3G: Available, 2G: Available bands),, 3G: Available, 2G: Available Fingerprint Sensor Yes Yes Audio Jack USB Type-C 3.5 MM Loudspeaker Yes Yes Chipset Qualcomm Snapdragon 765G Exynos 880 Graphics Adreno 620 Mali-G76 Processor Octa core (2.4 GHz, Single core, Kryo 475 + Exynos 880 2.2 GHz, Single core, Kryo 475 + 1.8 GHz, Hexa Core, Kryo 475) Architecture 64 bit 64 bit Ram 8 GB 6 GB Width 75.3 mm 76.6 mm Weight 173 grams 190 grams Build Material
    [Show full text]
  • Lecture 1: Introduction Advanced Digital VLSI Design I Bar-Ilan University, Course 83-614 Semester B, 2021 11 March 2021 Outline
    Lecture 1: Introduction Advanced Digital VLSI Design I Bar-Ilan University, Course 83-614 Semester B, 2021 11 March 2021 Outline © AdamMarch Teman, 11, 2021 Introduction Section 2 Section 3 Section 4 Section 5 Conclusions Motivation Course Motivation Snapdragon??? • How many of you understand this recent news item? • Qualcomm Snapdragon 710I mobilethought platform so… (SDM710) specifications: • CPU – 8x Qualcomm Kryo 360 CPU @ up to 2.2 GHz (in two clusters) • GPU – Qualcomm Adreno 616, DirectX 12 • DSP – Qualcomm Hexagon 680 • Memory I/F – LPDDR4x, 2x 16-bit up to 1866MHz, • Video: H.264 (AVC), H.265 (HEVC), VP9, VP8 • Camera: Qualcomm Spectra 250 ISP • Audio – Qualcomm Aqstic & aptX audio • Cellular Connectivity–Snapdragon X15 LTE modem • Wireless : 802.11ac Wi-Fi, Bluetooth 5, NFC • Manufacturing Process – Samsung 10nm LPP 4 © AdamMarch Teman, 11, 2021 Motivation •Welcome to EnICS. • To get you started on your graduate studies, let me introduce you to a wonderful invention… • Don’t you think it’s about time you know what’s inside? 5 © AdamMarch Teman, 11, 2021 Course Objective • To make sure that you – graduate students working on chip design – get to know the environment around your circuits. • Basic Terminology • Components • Systems (on a chip) • Software • Methodology • And since we’re leading one of the flagship programs of the Israel Innovation Authority • I’m going to familiarize you with RISC-V 6 © AdamMarch Teman, 11, 2021 Course Syllabus • Well, that’s a tough one… • In general, I call it “Microprocessors, Microcontrollers, SoC, and Embedded Computing” • I’ll let you know exactly what we’re going to learn as we go along.
    [Show full text]
  • Today's Smartphone Architecture
    Today’s Smartphone Architecture Malik Wallace Rafael Calderon Agenda History Hardware Future What is a Smartphone? Internals of Smartphones - SoC Future Technologies Smartphone Innovations CPU Architecture Today’s Smartphones Supported ISA Examples What is a Smartphone? It is a cellphone and PDA combined with additional computer-like features Initially cellphones were only able to make calls, and PDAs were only able to store contact information and create to-do lists Over time people wanted wireless connectivity, which was restricted to computers and laptops, integrated onto PDAs and cellphones thus came the smartphone Smartphone Innovations - Timeline 1993 2007 The First Smartphone - IBM Simon The iPhone with iOS, first phone with multi-touch capabilities 1996 Nokia’s First Smartphone 2008 HTC Dream with Android OS 1997 Ericsson GS88 - The first device labeled as a smartphone 2000 Symbian OS 2001 Windows CE Pocket PC OS 2002 Palm OS and Blackberry OS Today’s Smartphones Dominated by Android and Apple Features rich user interface with a variety of applications that integrate with the phone's architecture. Utilizes specific mobile operating systems which combines the features of personal computers with those of mobile phones. Built for efficiency, meant to use the least amount of power as possible (debatable!) Let’s Talk about the Hardware System-on-Chip (SoC) In order to maintain portability and lower power consumption system-on-chips were the chosen IC for smartphones CPU I/O GPU Networking Memory Anything extra Busses and Channels Harvard Architecture Instructions and data are treated the same Instructions are read and accessed just like data However..
    [Show full text]
  • 1 in the United States District Court for the Northern
    Case: 1:18-cv-06255 Document #: 1 Filed: 09/13/18 Page 1 of 19 PageID #:1 IN THE UNITED STATES DISTRICT COURT FOR THE NORTHERN DISTRICT OF ILLINOIS EASTERN DIVISION COMPLEX MEMORY, LLC, Plaintiff Civil Action No.: 1:18-cv-6255 v. PATENT CASE MOTOROLA MOBILITY LLC Jury Trial Demanded Defendant COMPLAINT FOR PATENT INFRINGEMENT Plaintiff Complex Memory, LLC (“Complex Memory”), by way of this Complaint against Defendant Motorola Mobility LLC (“Motorola” or “Defendant”), alleges as follows: PARTIES 1. Plaintiff Complex Memory is a limited liability company organized and existing under the laws of the State of Texas, having its principal place of business at 17330 Preston Road, Suite 200D, Dallas, Texas 75252. 2. On information and belief, Defendant Motorola is a Delaware limited liability company headquartered at 222 W. Merchandise Mart Plaza, Chicago, IL 60654. JURISDICTION AND VENUE 3. This is an action under the patent laws of the United States, 35 U.S.C. §§ 1, et seq., for infringement by Motorola of claims of U.S. Patent Nos. 5,890,195; 5,963,481; 6,658,576; 6,968,469; and 7,730,330 (“the Patents-in-Suit”). 4. This Court has subject matter jurisdiction pursuant to 28 U.S.C. §§ 1331 and 1338(a). 5. Motorola is subject to personal jurisdiction of this Court because, inter alia, on 1 Case: 1:18-cv-06255 Document #: 1 Filed: 09/13/18 Page 2 of 19 PageID #:2 information and belief, (i) Motorola is registered to transact business in the State of Illinois; (ii) Motorola conducts business in the State of Illinois and maintains a facility and employees within the State of Illinois; and (iii) Motorola has committed and continues to commit acts of patent infringement in the State of Illinois, including by making, using, offering to sell, and/or selling accused products and services in the State of Illinois, and/or importing accused products and services into the State of Illinois.
    [Show full text]
  • OPERATING NEURAL NETWORKS on MOBILE DEVICES by Peter Bai
    OPERATING NEURAL NETWORKS ON MOBILE DEVICES by Peter Bai A Thesis Submitted to the Faculty of Purdue University In Partial Fulfillment of the Requirements for the degree of Master of Science in Electrical and Computer Engineering School of Electrical & Computer Engineering West Lafayette, Indiana August 2019 2 THE PURDUE UNIVERSITY GRADUATE SCHOOL STATEMENT OF COMMITTEE APPROVAL Dr. Saurabh Bagchi, Chair School of Electrical and Computer Engineering Dr. Sanjay Rao School of Electrical and Computer Engineering Dr. Jan Allebach School of Electrical and Computer Engineering Approved by: Dr. Dimitrios Peroulis Head of the Graduate Program 3 To my parents and teachers who encouraged me to never stop pushing on. 4 TABLE OF CONTENTS LIST OF TABLES .......................................................................................................................... 5 LIST OF FIGURES ........................................................................................................................ 6 ABSTRACT .................................................................................................................................... 7 CHAPTER 1. INTRODUCTION ................................................................................................ 8 1.1 Background ......................................................................................................................... 8 CHAPTER 2. HARDWARE SETUP .......................................................................................... 9 2.1 Hardware Selection
    [Show full text]
  • Linux Betriebssystem Linux Testen Und Parallel Zu Windows Installieren
    CNXSoft – Embedded Systems News News, Tutorials, Reviews, and How-Tos related to Embedded Linux and Android, Arduino, ESP8266, Development Boards, TV Boxes, Mini PCs, etc.. Home About Development Kits How-Tos & Training Materials Contact Us Type text to search here... Home > AllWinner A1X, AllWinner A2X, AllWinner A8X, Allwinner H-Series, AMD Opteron, AMLogic, Broadcom BCMxxxx, HiSilicon, Linux, Linux 4.x, Marvell Armada, Mediatek MT2xxx, Mediatek MT8xxx, NXP i.MX, Qualcomm Snapdragon, Rockchip RK33xx, Samsung Exynos, STMicro STM32, Texas Instruments OMAP 3, Texas Instruments OMAP 4, Texas Instruments OMAP 5 > Linux 4.6 Release – Main Changes, ARM and MIPS Architectures Linux 4.6 Release – Main Changes, ARM and MIPS Architectures May 16th, 2016 cnxsoft Leave a comment Go to comments Linux Betriebssystem Linux testen und parallel zu Windows installieren. So gehts! Linus Torvalds released Linux Kernel 4.6 earlier today: Tweet It’s just as well I didn’t cut the rc cycle short, since the last week ended up getting a few more fixes than expected, but nothing in there feels all that odd or out of line. So 4.6 is out there at the normal schedule, and that obviously also means that I’ll start doing merge window pull requests for 4.7 starting tomorrow. Since rc7, there’s been small noise all over, with driver fixes being the bulk of it, but there is minor noise all over (perf tooling, networking, filesystems, documentation, some small arch fixes..) The appended shortlog will give you a feel for what’s been going on during the last week. The 4.6 kernel on the whole was a fairly big release – more commits than we’ve had in a while.
    [Show full text]
  • Porting Linux on an ARM Board
    Porting Linux on an ARM board Porting Linux on an ARM board free electrons © Copyright 2015-2016, free electrons. Creative Commons BY-SA 3.0 license. Latest update: April 18, 2016. free electrons Corrections, suggestions, contributions and translations are welcome! Send them to [email protected] Embedded Linux Experts free electrons - Embedded Linux, kernel, drivers and Android - Development, consulting, training and support. http://free-electrons.com 1/220 Alexandre Belloni I Embedded Linux engineer at free electrons I Embedded Linux expertise I Development, consulting and training I Strong open-source focus I Open-source contributor I Maintainer for the Linux kernel RTC subsystem I Co-Maintainer of kernel supportfree electrons for Atmel ARM processors Embedded Linux Experts I Contributing to kernel support for Marvell ARM (Berlin) processors free electrons - Embedded Linux, kernel, drivers and Android - Development, consulting, training and support. http://free-electrons.com 2/220 Free Electrons Mission free electrons - Embedded Linux, kernel, drivers and Android - Development, consulting, training and support. http://free-electrons.com 3/220 Free Electrons at a glance I Engineering company created in 2004 (not a training company!) I Locations: Orange, Toulouse, Lyon (France) I Serving customers all around the world See http://free-electrons.com/company/customers/ I Head count: 11 Only Free Software enthusiasts! I Focus: Embedded Linux, Linux kernel, Android Free Software / Open Source for embedded and real-time systems. I Activities: development, training, consulting, technical support. I Added value: get the best of the user and development community and the resources it offers. free electrons - Embedded Linux, kernel, drivers and Android - Development, consulting, training and support.
    [Show full text]