background preloader


CUDA (Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce.[1] CUDA gives program developers direct access to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs. Using CUDA, the GPUs can be used for general purpose processing (i.e., not exclusively graphics); this approach is known as GPGPU. Unlike CPUs, however, GPUs have a parallel throughput architecture that emphasizes executing many concurrent threads slowly, rather than executing a single thread very quickly. CUDA provides both a low level API and a higher level API. Example of CUDA processing flow 1. Background[edit] The GPU, as a specialized processor, addresses the demands of real-time high-resolution 3D graphics compute-intensive tasks. Advantages[edit] CUDA has several advantages over traditional general-purpose computation on GPUs (GPGPU) using graphics APIs: Related:  Computer Vision

OpenCL Open Computing Language (OpenCL) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors. OpenCL includes a language (based on C99) for writing kernels (functions that execute on OpenCL devices), plus application programming interfaces (APIs) that are used to define and then control the platforms. OpenCL provides parallel computing using task-based and data-based parallelism. OpenCL is an open standard maintained by the non-profit technology consortium Khronos Group. It has been adopted by Apple, Intel, Qualcomm, Advanced Micro Devices (AMD), Nvidia, Altera, Samsung, Vivante and ARM Holdings. For example, OpenCL can be used to give an application access to a graphics processing unit for non-graphical computing (see general-purpose computing on graphics processing units). History[edit]

Shell (computing) A shell in computing provides a user interface for access to an operating system's services. "Shell" is also used loosely to describe applications, including software that is "built around" a particular component, such as web browsers and email clients that are, in themselves, "shells" for HTML rendering engines. The term "shell" in computing, being the outer layer between the user and the operating system kernel, is synonymous with the general word "shell". Generally, operating system shells use either a command-line interface (CLI) or graphical user interface (GUI). The optimum choice of user interface depends on a computer's role and particular operation. In expert systems, a shell is a piece of software that is an "empty" expert system without the knowledge base for any particular application.[4] A command-line interface (CLI) is an operating system shell that uses alphanumeric characters typed on a keyboard to provide instructions and data to the operating system, interactively.

GPGPU General-purpose computing on graphics processing units (GPGPU, rarely GPGP or GP²U) is the utilization of a graphics processing unit (GPU), which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the central processing unit (CPU).[1][2][3] Any GPU providing a functionally complete set of operations performed on arbitrary bits can compute any computable value. Additionally, the use of multiple graphics cards in one computer, or large numbers of graphics chips, further parallelizes the already parallel nature of graphics processing.[4] OpenCL is the currently dominant open general-purpose GPU computing language. The dominant proprietary framework is Nvidia's CUDA.[5] Programmability[edit] In principle, any boolean function can be built-up from a functionally complete set of logic operators. DirectX 9 Shader Model 2.x suggested the support of two precision types: full and partial precision. Stream processing[edit]

Unix shell tcsh and sh shell windows on a Mac OS X desktop. The most influential Unix shells have been the Bourne shell and the C shell, These shells have both been used as the coding base and model for many derivative and work-alike shells with extended feature sets. The C shell, csh, was written by Bill Joy while a graduate student at University of California, Berkeley. The language, including the control structures and the expression grammar, was modeled on C. Concept[edit] On hosts with a windowing system, some users may never use the shell directly. Graphical user interfaces for Unix, such as GNOME, KDE, and Xfce are sometimes called visual or graphical shells. Bourne shell[edit] The Bourne shell was one of the major shells used in early versions of the Unix operating system and became a de facto standard. The POSIX standard specifies its standard shell as a strict subset of the Korn shell, an enhanced version of the Bourne shell. C shell[edit] Shell categories[edit] Bourne shell compatible[edit]

COMPUTE BASH Programming - Introduction HOW-TO: Introduction Next Previous Contents 1. Introduction 1.1 Getting the latest version 1.2 Requisites Familiarity with GNU/Linux command lines, and familiarity with basic programming concepts is helpful. 1.3 Uses of this document This document tries to be useful in the following situations You have an idea about programming and you want to start coding some shell scripts.

COMMUNITY Bash - GNU Project Bash is the GNU Project's shell. Bash is the Bourne Again SHell. Bash is an sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh). It is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers functional improvements over sh for both programming and interactive use. The improvements offered by Bash include: Command line editingUnlimited size command historyJob ControlShell Functions and AliasesIndexed arrays of unlimited sizeInteger arithmetic in any base from two to sixty-four The maintainer also has a bash page which includes Frequently-Asked-Questions. Downloading Bash Bash can be found on the main GNU ftp server: (via HTTP) and (via FTP). Documentation Documentation for Bash is available online, as is documentation for most GNU software. Mailing lists Announcements about Bash and most other GNU software are made on <>. Getting involved

OpenCL by Example Bash (Unix shell) Brian Fox began coding Bash on January 10, 1988[11] after Richard Stallman became dissatisfied with the lack of progress being made by a prior developer.[3] Stallman and the Free Software Foundation (FSF) considered a free shell that could run existing sh scripts so strategic to a completely free system built from BSD and GNU code that this was one of the few projects they funded themselves, with Fox undertaking the work as an employee of FSF.[3][12] Fox released Bash as a beta, version .99, on June 7, 1989[5] and remained the primary maintainer until sometime between mid-1992[13] and mid-1994,[14] when he was laid off from FSF[15] and his responsibility was transitioned to another early contributor, Chet Ramey.[16][17][18] Bash supports here documents just as the Bourne shell always has. In addition, since version 2.05b Bash can redirect standard input (stdin) from a "here string" using the <<< operator. echo a{p,c,d,b}e # ape ace ade abeecho {a,b,c}{d,e,f} # ad ae af bd be bf cd ce cf

Predict Gaze