IRIX™ Device Driver Programmer's Guide

Total Page:16

File Type:pdf, Size:1020Kb

IRIX™ Device Driver Programmer's Guide IRIX™ Device Driver Programmer’s Guide Document Number 007-0911-090 CONTRIBUTORS Written by David Cortesi Illustrated by Dany Galgani Significant engineering contributions by (in alphabetical order): Rich Altmaier, Peter Baran, Brad Eacker, Ben Fathi, Steve Haehnichen, Bruce Johnson, Tom Lawrence, Greg Limes, Ben Mahjoor, Charles Marker, Dave Olson, Bhanu Prakash, James Putnam, Sarah Rosedahl, Brett Rudley, Deepinder Setia, Adam Sweeney, Michael Wang, Len Widra, Daniel Yau. Beta test contributions by: Jeff Stromberg of GeneSys St Peter’s Basilica image courtesy of ENEL SpA and InfoByte SpA. Disk Thrower image courtesy of Xavier Berenguer, Animatica. © 1996-1997, Silicon Graphics, Inc.— All Rights Reserved The contents of this document may not be copied or duplicated in any form, in whole or in part, without the prior written permission of Silicon Graphics, Inc. RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure of the technical data contained in this document by the Government is subject to restrictions as set forth in subdivision (c) (1) (ii) of the Rights in Technical Data and Computer Software clause at DFARS 52.227-7013 and/or in similar or successor clauses in the FAR, or in the DOD or NASA FAR Supplement. Unpublished rights reserved under the Copyright Laws of the United States. Contractor/manufacturer is Silicon Graphics, Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94043-1389. Silicon Graphics, the Silicon Graphics logo, CHALLENGE, Indigo, Indy, and Onyx are registered trademarks and Crimson, Indigo2, Indigo2 Maximum Impact, IRIS InSight, IRIX, O2, Origin200, Origin2000, POWER CHALLENGE, POWER Channel, POWER Indigo2, and POWER Onyx are trademarks of Silicon Graphics, Inc. MIPS, R4000, R8000 are registered trademarks and R10000 is a trademark of MIPS Technologies, Inc. UNIX is a trademark of SCO. Sun and SunOS are trademarks of Sun Microsystems, Inc. MC6800, MC68000, and VERSAbus are trademarks of Motorola Corporation. IBM is a trademark of International Business Machines. Intel is a trademark of Intel Corporation. X Window System is a trademark of Massachusetts Institute of Technology. IRIX™ Device Driver Programmer’s Guide Document Number 007-0911-090 Contents List of Examples xxi List of Figures xxv List of Tables xxvii About This Guide xxxi What You Need to Know xxxi What This Guide Contains xxxii Other Sources of Information xxxiii Developer Program xxxiii Internet Resources xxxiii Standards Documents xxxiv Important Reference Pages xxxiv Additional Reading xxxv Conventions Used in This Guide xxxvi iii Contents PART I IRIX Device Integration 1. Physical and Virtual Memory 3 CPU Access to Memory and Devices 4 CPU Modules 4 CPU Access to Memory 5 Processor Operating Modes 7 Virtual Address Mapping 7 Address Space Creation 8 Address Exceptions 8 CPU Access to Device Registers 9 Direct Memory Access 10 PIO Addresses and DMA Addresses 11 Cache Use and Cache Coherency 13 The 32-Bit Address Space 15 Segments of the 32-bit Address Space 15 Virtual Address Mapping 17 User Process Space—kuseg 17 Kernel Virtual Space—kseg2 18 Cached Physical Memory—kseg0 18 Uncached Physical Memory—kseg1 18 The 64-Bit Address Space 19 Segments of the 64-Bit Address Space 19 Compatibility of 32-Bit and 64-Bit Spaces 21 Virtual Address Mapping 21 User Process Space—xkuseg 22 Supervisor Mode Space—xksseg 22 Kernel Virtual Space—xkseg 23 Cache-Controlled Physical Memory—xkphys 23 iv Contents Address Space Usage in Origin2000 Systems 25 User Process Space and Kernel Virtual Space 25 Uncached and Special Address Spaces 25 Cached Access to Physical Memory 26 Uncached Access to Memory 28 Synchronization Access to Memory 28 Device Driver Use of Memory 30 Allowing for 64-Bit Mode 30 Memory Use in User-Level Drivers 31 Memory Use in Kernel-Level Drivers 32 2. Device Configuration 35 Device Special Files 36 Devices as Files 36 Block and Character Device Access 36 Multiple Device Names 37 Major Device Number 38 Minor Device Number 39 Creating Conventional Device Names 40 Hardware Graph 41 UNIX Hardware Assumptions, Old and New 42 Hardware Graph Features 43 /hw Filesystem 46 Driver Interface to Hwgraph 47 Hardware Inventory 48 Using the Hardware Inventory 48 Creating an Inventory Entry 51 Using ioconfig for Global Controller Numbers 51 Configuration Files 55 Master Configuration Database 55 Kernel Configuration Files 56 System Tuning Parameters 58 X Display Manager Configuration 58 v Contents 3. Device Control Software 59 User-Level Device Control 59 PCI Mapping Support 60 EISA Mapping Support 60 VME Mapping Support 60 User-Level DMA From the VME Bus 61 User-Level Control of SCSI Devices 61 Managing External Interrupts 62 User-Level Interrupt Management 62 Kernel-Level Device Control 63 Kinds of Kernel-Level Drivers 63 Typical Driver Operations 63 Upper and Lower Halves 71 Layered Drivers 73 Combined Block and Character Drivers 73 Drivers for Multiprocessors 74 Loadable Drivers 75 PART II Device Control From Process Space 4. User-Level Access to Devices 79 PCI Programmed I/O 80 Mapping a PCI Device Into Process Address Space 80 PCI Device Special Files 80 Using mmap() With PCI Devices 82 PCI Bus Hardware Errors 83 PCI PIO Example 83 EISA Programmed I/O 84 Mapping an EISA Device Into Memory 85 EISA PIO Bandwidth 87 VME Programmed I/O 88 Mapping a VME Device Into Process Address Space 88 VME PIO Access 91 vi Contents VME User-Level DMA 92 Using the DMA Library Functions 92 5. User-Level Access to SCSI Devices 95 Overview of the dsreq Driver 96 Generic SCSI Device Special Files 96 Major and Minor Device Numbers in /dev/scsi 97 Form of Filenames in /dev/scsi 97 Creating Additional Names in /dev/scsi 98 Relationship to Other Device Special Files 99 The dsreq Structure 99 Values for ds_flags 101 Data Transfer Options 102 Return Codes and Status Values 103 Testing the Driver Configuration 106 Using the Special DS_RESET and DS_ABORT Calls 107 Using DS_ABORT 107 Using DS_RESET 107 Using dslib Functions 107 dslib Functions 108 Using dsopen() and dsclose() 109 Issuing a Request With doscsireq() 110 SCSI Utility Functions 110 Using Command-Building Functions 113 Example dslib Program 120 6. Control of External Interrupts 129 External Interrupts in Challenge and Onyx Systems 130 Generating Outgoing Signals 130 Responding to Incoming External Interrupts 131 External Interrupts In Origin2000 and Origin200 135 Generating Outgoing Signals 136 Responding to Incoming External Interrupts 138 vii Contents 7. User-Level Interrupts 141 Overview of ULI 141 The User Level Interrupt Handler 141 Restrictions on the ULI Handler 142 Planning for Concurrency 143 Using Multiple Devices 144 Setting Up 144 Opening the Device Special File 144 Locking the Program Address Space 145 Registering the Interrupt Handler 145 Interacting With the Handler 147 Sample Program 149 PART III Kernel-Level Drivers 8. Structure of a Kernel-Level Driver 155 Summary of Driver Structure 157 Entry Point Naming and lboot 157 Entry Point Summary 159 Driver Flag Constant 162 Flag D_MP 163 Flag D_MT 163 Flag D_WBACK 163 Flag D_OLD Not Supported 164 Initialization Entry Points 164 When Initialization Is Performed 164 Entry Point init() 165 Entry Point edtinit() 165 Entry Point start() 166 Entry Point reg() 167 Attach and Detach Entry Points 167 Entry Point attach() 167 Entry Point detach() 170 viii Contents Open and Close Entry Points 171 Entry Point open() 171 Entry Point close() 174 Control Entry Point 175 Choosing the Command Numbers 176 Supporting 32-Bit and 64-Bit Callers 176 User Return Value 176 Data Transfer Entry Points 176 Entry Points read() and write() 177 Entry Point strategy() 179 Poll Entry Point 180 Use and Operation of poll(2) 180 Entry Point poll() 181 Memory Map Entry Points 182 Concepts and Use of mmap() 183 Entry Point map() 184 Entry Point mmap() 186 Entry Point unmap() 187 Interrupt Entry Point and Handler 188 Associating Interrupt to Driver 188 Interrupt Handler Operation 189 Interrupts as Threads 190 Mutual Exclusion 191 Interrupt Performance and Latency 192 Support Entry Points 192 Entry Point unreg() 192 Entry Point unload() 193 Entry Point halt() 194 Entry Point size() 194 Entry Point print() 194 Handling 32-Bit and 64-Bit Execution Models 195 ix Contents Designing for Multiprocessor Use 196 The Multiprocessor Environment 196 Synchronizing Within Upper-Half Functions 198 Coordinating Upper-Half and Interrupt Entry Points 199 Converting a Uniprocessor Driver 201 Example Conversion Problem 201 9. Device Driver/Kernel Interface 203 Important Data Types 204 Hardware Graph Types 204 Address Types 205 Address/Length Lists 205 Structure uio_t 207 Structure buf_t 208 Lock and Semaphore Types 210 Device Number Types 211 Important Header Files 213 Kernel Memory Allocation 215 General-Purpose Allocation 215 Allocating Memory in Specific Nodes of a Origin2000 System 216 Allocating Objects of Specific Kinds 217 Transferring Data 219 General Data Transfer 219 Transferring Data Through a uio_t Object 221 Managing Virtual and Physical Addresses 222 Managing Mapped Memory 222 Working With Page and Sector Units 223 Using Address/Length Lists 224 Setting Up a DMA Transfer 228 Testing Device Physical Addresses 232 Hardware Graph Management 233 Interrogating the hwgraph 233 Extending the hwgraph 234 Attaching Information to Vertexes 240 x Contents User Process Administration 243 Sending a Process Signal 244 Waiting and Mutual Exclusion 245 Mutual Exclusion Compared to Waiting 245 Basic Locks 246 Long-Term Locks 248 Reader/Writer Locks 251 Priority Level Functions 253 Waiting for Time to Pass
Recommended publications
  • A Spiking Neural Algorithm for Network Flow
    A Spiking Neural Algorithm for Network Flow A pipeline from theory to practice for neuromorphic computing Course code: SOW-MKI92 MSc thesis Artificial Intelligence ABDULLAHI ALI s4420241 5 June 2019 Supervisor: Johan Kwisthout Second reader: Iris van Rooij Abstract It is not clear what the potential is of neuromorphic hardware beyond machine learning and neu- roscience. In this project, a problem is investigated that is inherently difficult to fully implement in neuromorphic hardware by introducing a new machine model in which a conventional Turing ma- chine and neuromorphic oracle work together to solve such types of problems. A lattice of complexity classes is introduced: CSNN(RS ), in which a neuromorphic oracle is consulted using only resources at SNN(O(n);O(n);O(n)) most RS. We show that the P-complete MAX NETWORK FLOW problem is in L for graphs with n edges. A modified variant of this algorithm is implemented on the Intel Loihi chip; a neuromorphic manycore processor developed by Intel Labs. We show that by off-loading the search for augmenting paths to the neuromorphic processor we can get energy efficiency gains, while not sacrificing runtime resources. This result demonstrates how P-complete problems can be mapped on neuromorphic architectures in a theoretically and potentially practically efficient manner. 1 1 Introduction Neuromorphic computing has been one of the proposed novel architectures to replace the von Neumann architecture that has dominated computing for the last 70 years [18]. These systems consist of low power, intrinsically parallel architectures of simple spiking processing units. In recent years numerous neuro- morphic hardware architectures have emerged with different architectural design choices [1, 8, 21, 14].
    [Show full text]
  • Performance Improvement in MIPS Pipeline Processor Based on FPGA
    International Journal of Engineering Technology, Management and Applied Sciences www.ijetmas.com January 2016, Volume 4, Issue 1, ISSN 2349-4476 Performance Improvement in MIPS Pipeline Processor based on FPGA Kirat Pal Singh1, Shiwani Dod2 Senior Project Fellow1, Student2 1CSIR-Central Scientific Instruments Organisation, Chandigarh, India 2Rayat and Bhara Institute of Engineering and biotechnology, Mohali, India Abstract - The paper describes the design and synthesis favorite choice among universities and research labs of a basic 5 stage pipelined MIPS-32 processor for for using as the base of their design. This simplicity finding the longer path delay using different process also makes the MIPS architecture very attractive to technologies. The large propagation delay or critical the embedded microprocessor market as it enables path within the circuit and improving the hardware very cost-effective implementations. which causes delay is a standard method for increasing A. PROCESSOR OVERVIEW the performance. The organization of pipeline stages in such a way that pipeline can be clocked at a high A MIPS-based RISC processor was introduced in frequency. The design has been synthesized at different [1], is described. For describing the processor process technologies targeting using Spartan3, Spartan6, architecture, a basic model is chosen. Fig. 1.1 Virtex4, Virtex5 and Virtex6 devices. The synthesis represents the top-level schematic of the MIPS report indicates that critical path delay is located in pipelined processor. This schematic shows the execution unit. The maximum critical path delay is principal components, or main blocks of the 41.405ns at 90nm technology and minimum critical path processor. It was a fixed-point processor and consist delay is 6.57ns at 40nm technology.
    [Show full text]
  • Zeno Machines and Hypercomputation Petrus H
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Elsevier - Publisher Connector Theoretical Computer Science 358 (2006) 23–33 www.elsevier.com/locate/tcs Zeno machines and hypercomputation Petrus H. Potgieter∗ Department of Decision Sciences, University of South Africa, P.O. Box 392, Unisa 0003, Pretoria Received 6 December 2004; received in revised form 14 November 2005; accepted 29 November 2005 Communicated by M. Hirvensalo Abstract This paper reviews the Church–Turing Thesis (or rather, theses) with reference to their origin and application and considers some models of “hypercomputation”, concentrating on perhaps the most straight-forward option: Zeno machines (Turing machines with accelerating clock). The halting problem is briefly discussed in a general context and the suggestion that it is an inevitable companion of any reasonable computational model is emphasised. It is suggested that claims to have “broken the Turing barrier” could be toned down and that the important and well-founded rôle of Turing computability in the mathematical sciences stands unchallenged. © 2006 Elsevier B.V. All rights reserved. Keywords: Church–Turing Thesis; Zeno machine; Accelerated Turing machine; Hypercomputation; Halting problem 1. Introduction The popular and scientific literature in foundational aspects of computer science and in physical science have of late been replete with obituaries for the Church–Turing Thesis (CTT) and triumphant announcements of the dawn of “hypercomputation” (the “scare quotes” around which are to be carelessly omitted from this point on). Some of the proponents of this idea and their readers believe that somehow the CTT has been disproved. It is often not quite clear however what exactly they take the Thesis to mean.
    [Show full text]
  • Computability and Complexity of Unconventional Computing Devices
    Computability and Complexity of Unconventional Computing Devices Hajo Broersma1, Susan Stepney2, and G¨oranWendin3 1 Faculty of Electrical Engineering, Mathematics and Computer Science, CTIT Institute for ICT Research, and MESA+ Institute for Nanotechnology, University of Twente, The Netherlands 2 Department of Computer Science, University of York, UK 3 Microtechnology and Nanoscience Department, Chalmers University of Technology, Gothenburg, SE-41296 Sweden Abstract. We discuss some claims that certain UCOMP devices can perform hypercomputa- tion (compute Turing-uncomputable functions) or perform super-Turing computation (solve NP-complete problems in polynomial time). We discover that all these claims rely on the provision of one or more unphysical resources. 1 Introduction For many decades, Moore's Law (Moore; 1965) gave us exponentially-increasing classical (digital) computing (CCOMP) power, with a doubling time of around 18 months. This can- not continue indefinitely, due to ultimate physical limits (Lloyd; 2000). Well before then, more practical limits will slow this increase. One such limit is power consumption. With present efforts toward exascale computing, the cost of raw electrical power may eventually be the limit to the computational power of digital machines: Information is physical, and electrical power scales linearly with computational power (electrical power = number of bit flips per second times bit energy). Reducing the switching energy of a bit will alleviate the problem and push the limits to higher processing power, but the exponential scaling in time will win in the end. Programs that need exponential time will consequently need exponen- tial electrical power. Furthermore, there are problems that are worse than being hard for CCOMP: they are (classically at least) undecidable or uncomputable, that is, impossible to solve.
    [Show full text]
  • LEP to an Fcc-Ee – a Bridge Too Far?
    Monday 19 October 2020 [email protected] https://orcid.org/0000-0001-8404-3750 DOI:10.5281/zenodo.4018493 LEP to an fcc-ee – A Bridge Too Far? Introduction This paper attempts to précis key documents, presentations and papers that are stilL availabLe concerning the preparation for, and execution of, (mainLy offLine) computing for the Large ELectron Positron colLider (LEP) at CERN. The motivation is not onLy to capture this information before it is too Late – which in some cases it aLready is – but also shouLd it be of interest, even if only anecdotally, in the preparation for future, “simiLar” machines. SpecificalLy, as a resuLt, the interested reader shouLd be aware of what eLectronic documents are avaiLabLe together with direct pointers to be abLe to find them. As further motivation, the 2020 update of the European Strategy for Particle Physics contains the foLLowing statements: “The vision is to prepare a Higgs factory, followed by a future hadron collider”. “Given the unique nature of the Higgs boson, there are compelling scientific arguments for a new electron-positron collider operating as a Higgs factory”. [Pre-ambLe] “An electron-positron Higgs factory is the highest priority next collider”. [High-priority future initiatives] The document aLso states: “Further development of internal policies on open data and data preservation should be encouraged, and an adequate level of resources invested in their implementation.” Therefore, a summary of the current status in these areas, particuLarLy with regard to the former eLectron-positron collider (LEP) is called for. In 2020, we are (were) at approximateLy mid-point between the end of data taking at LEP and the possible start of data taking at a future fcc-ee (2039?).
    [Show full text]
  • Hxdp: Efficient Software Packet Processing on FPGA Nics
    hXDP: Efficient Software Packet Processing on FPGA NICs Marco Spaziani Brunella1,3, Giacomo Belocchi1,3, Marco Bonola1,2, Salvatore Pontarelli1, Giuseppe Siracusano4, Giuseppe Bianchi3, Aniello Cammarano2,3, Alessandro Palumbo2,3, Luca Petrucci2,3 and Roberto Bifulco4 1Axbryd, 2CNIT, 3University of Rome Tor Vergata, 4NEC Laboratories Europe Abstract advocating for the introduction of FPGA NICs, because of their ability to use the FPGAs also for tasks such as machine FPGA accelerators on the NIC enable the offloading of expen- learning [13, 14]. FPGA NICs play another important role in sive packet processing tasks from the CPU. However, FPGAs 5G telecommunication networks, where they are used for the have limited resources that may need to be shared among acceleration of radio access network functions [11,28,39,58]. diverse applications, and programming them is difficult. In these deployments, the FPGAs could host multiple func- We present a solution to run Linux’s eXpress Data Path tions to provide higher levels of infrastructure consolidation, programs written in eBPF on FPGAs, using only a fraction since physical space availability may be limited. For instance, of the available hardware resources while matching the per- this is the case in smart cities [55], 5G local deployments, e.g., formance of high-end CPUs. The iterative execution model in factories [44,47], and for edge computing in general [6,30]. of eBPF is not a good fit for FPGA accelerators. Nonethe- Nonetheless, programming FPGAs is difficult, often requiring less, we show that many of the instructions of an eBPF pro- the establishment of a dedicated team composed of hardware gram can be compressed, parallelized or completely removed, specialists [18], which interacts with software and operating when targeting a purpose-built FPGA executor, thereby sig- system developers to integrate the offloading solution with the nificantly improving performance.
    [Show full text]
  • ENGINEERING DESIGN of RECONFIGURABLE PIPELINED DATAPATH.Pdf
    Journal For Innovative Development in Pharmaceutical and Technical Science (JIDPTS) (J I D P T S) Volume:2, Issue:12, December:2019 ISSN(O):2581-6934 ENGINEERING DESIGN OF RECONFIGURABLE PIPELINED DATAPATH ________________________________________________________________________________________ 1 2 3 4 D.PREETHI , G.KEERTHANA , K.RESHMA , Mr.A.RAJA 1 2 3 UG Students, 4 Assistant professor 1 2 3 4 Department Of Electronics And Communication Engineering, Saveetha school of engineering, Tamil Nadu, Chennai Abstract : Configurable processing has caught the creative mind of numerous draftsmen who need the exhibition of use explicit equipment joined with the re programmability of universally useful PCs. Sadly, Configurable processing has had rather constrained achievement generally on the grounds that the FPGAs on which they are constructed are more fit to executing arbitrary rationale than registering assignments. This paper presents RaPiD, another coarse-grained FPGA engineering that is enhanced for exceptionally monotonous, calculation escalated errands. Extremely profound application-explicit calculation pipelines can be designed in RaPiD. These pipelines make significantly more proficient utilization of silicon than customary FPGAs and furthermore yield a lot better for a wide scope of uses. Keywords: Funtional unit , Symbolic array, Control path, Configurable computing, Configurable pipeline ___________________________________________________________________________________________________________ Introduction continues to beun realizable.
    [Show full text]
  • Lynx: a Smartnic-Driven Accelerator-Centric Architecture for Network Servers
    Lynx: A SmartNIC-driven Accelerator-centric Architecture for Network Servers Maroun Tork Lina Maudlej Mark Silberstein Technion – Israel Institute of Technion – Israel Institute of Technion – Israel Institute of Technology Technology Technology Haifa, Israel Haifa, Israel Haifa, Israel Abstract This paper explores new opportunities afforded by the grow- CPU Accelerator Accelerator ing deployment of compute and I/O accelerators to improve Request Processing the performance and efficiency of hardware-accelerated com- Network Server Request puting services in data centers. Network I/O Processing Accelerator I/O We propose Lynx, an accelerator-centric network server architecture that offloads the server data and control planes SNIC to the SmartNIC, and enables direct networking from accel- Accelerator I/O Service erators via a lightweight hardware-friendly I/O mechanism. NIC Network Server Lynx enables the design of hardware-accelerated network Network I/O servers that run without CPU involvement, freeing CPU cores and improving performance isolation for accelerated (a) Traditional host-centric (b) Lynx: Accelerator-centric services. It is portable across accelerator architectures and al- lows the management of both local and remote accelerators, Figure 1. Accelerated network server architectures. seamlessly scaling beyond a single physical machine. We implement and evaluate Lynx on GPUs and the In- 1 Introduction tel Visual Compute Accelerator, as well as two SmartNIC Modern data centers are increasingly heterogeneous, with a architectures – one with an FPGA, and another with an 8- variety of compute accelerators deployed to accommodate core ARM processor. Compared to a traditional host-centric growing performance demands. Many cloud vendors lever- × approach, Lynx achieves over 4 higher throughput for a age them to build hardware-accelerated network-attached GPU-centric face verification server, where it is used forGPU computing services.
    [Show full text]
  • The Limits of Computation
    1 The Limits of Computation The next time a bug freezes your computer, you can take solace in the deep mathe- matical truth that there is no way to eliminate all bugs -Seth Lloyd The 1999 science fiction movie, ‘The Matrix’, explored this idea. In this world, humans are plugged into a virtual reality, referred to as ‘The Matrix’. They go about their daily lives, unaware that the sensory inputs that they receive do not originate from their per- ceived reality. When a person, Alice, within the matrix observes a watermelon falling from a skyscraper, there is no skyscraper, nor watermelon, nor even gravity responsi- ble for the watermelon’s fall. Instead a complex computer program works silently in the background. The initial state of the watermelon, the location of the observer, are encoded in a sequence of bits. The computer takes these bits, processes according to a predetermined algorithm, and outputs the electrical signals that dictate what the observer should see. To people in the twenty first century, whose lives are enmeshed in various information processors, the eventual plausibility of the Matrix does not appear as radical as it once did. One by one, the photos we watch, and the mail we send, have been converted to digital form. Common questions such as “How many megabytes does that song take up?” reflect a society that is becoming increasingly accepting of the possibility that the observable qualities of every object can be represented by bits, and physical processes by how they manipulate these bits. While most people regard this as a representa- tion of reality, some scientists have even gone as far to speculate that the universe is perhaps just a giant information processor, programmed with the laws of physics we know [Llo06].
    [Show full text]
  • EDGE: Event-Driven GPU Execution
    EDGE: Event-Driven GPU Execution Tayler Hicklin Hetherington, Maria Lubeznov, Deval Shah, Tor M. Aamodt Electrical & Computer Engineering The University of British Columbia Vancouver, Canada ftaylerh, mlubeznov, devalshah, [email protected] Abstract—GPUs are known to benefit structured applications 10 Baseline with ample parallelism, such as deep learning in a datacenter. (11.1 us at Recently, GPUs have shown promise for irregular streaming 1 705 MHz) network tasks. However, the GPU’s co-processor dependence on a EDGE CPU for task management, inefficiencies with fine-grained tasks, 0.1 EDGE + to Baseline and limited multiprogramming capabilities introduce challenges Preemption with efficiently supporting latency-sensitive streaming tasks. Relative Latency 0.01 This paper proposes an event-driven GPU execution model, Fig. 1: Combined kernel launch and warp scheduling latency. EDGE, that enables non-CPU devices to directly launch pre- configured tasks on a GPU without CPU interaction. Along with GPU. Second, GPUs optimize for throughput over latency, freeing up the CPU to work on other tasks, we estimate that EDGE can reduce the kernel launch latency by 4.4× compared preferring larger tasks to efficiently utilize the GPU hardware to the baseline CPU-launched approach. This paper also proposes resources and amortize task launch overheads. Consequently, a warp-level preemption mechanism to further reduce the end-to- GPU networking applications often construct large packet end latency of fine-grained tasks in a shared GPU environment. batches to improve throughput at the cost of queuing and pro- We evaluate multiple optimizations that reduce the average warp cessing latencies. Lastly, GPUs have limited multiprogramming preemption latency by 35.9× over waiting for a preempted warp to naturally flush the pipeline.
    [Show full text]
  • A Spiking Neural Algorithm
    A SPIKING NEURAL ALGORITHM FOR THE NETWORK FLOW PROBLEM APREPRINT Abdullahi Ali Johan Kwisthout School for Artificial Intelligence Donders Institute for Brain, Cognition, and Behaviour Radboud University Radboud University Nijmegen, The Netherlands Nijmegen, The Netherlands [email protected] [email protected] December 2, 2019 ABSTRACT It is currently not clear what the potential is of neuromorphic hardware beyond machine learning and neuroscience. In this project, a problem is investigated that is inherently difficult to fully implement in neuromorphic hardware by introducing a new machine model in which a conventional Turing machine and neuromorphic oracle work together to solve such types of problems. We show that the P-complete MAX NETWORK FLOW problem is intractable in models where the oracle may be consulted only once (‘create-and-run’ model) but becomes tractable using an interactive (‘neuromorphic co-processor’) model of computation. More in specific we show that a logspace-constrained Turing machine with access to an interactive neuromorphic oracle with linear space, time, and energy constraints can solve MAX NETWORK FLOW. A modified variant of this algorithm is implemented on the Intel Loihi chip; a neuromorphic manycore processor developed by Intel Labs. We show that by off-loading the search for augmenting paths to the neuromorphic processor we can get energy efficiency gains, while not sacrificing runtime resources. This result demonstrates how P-complete problems can be mapped on neuromorphic architectures in a theoretically and potentially practically efficient manner. Keywords Neuromorphic computation · Scientific programming · Spiking neural networks · Network Flow problem 1 Introduction Neuromorphic computing has been one of the proposed novel architectures to replace the von Neumann architecture arXiv:1911.13097v1 [cs.NE] 29 Nov 2019 that has dominated computing for the last 70 years [1].
    [Show full text]
  • Cambridge University Press 978-1-107-17119-0 — Physical Perspectives on Computation, Computational Perspectives on Physics Edited by Michael E
    Cambridge University Press 978-1-107-17119-0 — Physical Perspectives on Computation, Computational Perspectives on Physics Edited by Michael E. Cuffaro , Samuel C. Fletcher Index More Information Index k relation, 214 Aristotle, 34 k relation, 214 arithmetical relation, 214 1 relation, 214 arithmetical set, 213 ǫ-closeness condition, 133 asymmetry, temporal, 236 ǫ-commuting diagram, 133–135, 147 asymptotic behavior, 175 λ-calculus, 2, 155, 161, 226 asymptotic methods, 175, 180–183, 194 λ-definability, 64 Avogadro’s number, 253 μ-recursion, 155, 161 axiomatic method, 60, 62–63 axiomatization of computability, 153–156 Aaronson, Scott, 48 of geometry, see Hilbert’s axiomatization of Abstraction/Representation theory, 15–16, geometry 127–149 of physics, 155, 165 diagram, 128, 133 of quantum theory, 257, 277 essential components, 140 of relativity, 166 Ackermann function, 158–161 affine-linear symmetry, 269, 272 agency, 16, 119–125 Babbage, Charles, see difference engine algebra of concepts, 72 backward error analysis, 181 algorithm, 65, 83–84, 97, 173–174, 176, Banach-Tarski paradox, 147 187, 189 basic linear algebra subprograms, 187 asynchronous, 52 basic polynomial algebra subprograms, 192 feasible, 173 Bell experiment, 263 probabilistic, 52 Berlekamp-Zassenhaus algorithm, 173 quantum, 77, 88, 90–91, 101–102 Bernoulli, Johann, 177 symbolic, 192 black hole, 17, 123, 199–200 analytical engine, 141–142 electrically charged, 208 ancilla bit, 85 Kerr, see rotating anti-hypercomputation thesis, see also rotating, 51, 196, 200–204, 208, 210, 214
    [Show full text]