Android Renderscript. Stephen Hines, Shih-wei Liao, Jason Sams, Alex Sakhartchouk November 18, 2011
|
|
|
- Marjorie McDaniel
- 10 years ago
- Views:
Transcription
1 Android Renderscript Stephen Hines, Shih-wei Liao, Jason Sams, Alex Sakhartchouk November 18, 2011
2 Outline Goals/Design of Renderscript Components Offline Compiler Online JIT Compiler Renderscript Runtime Java Reflection + rsforeach HelloCompute Example LLVM Challenges Source Differences Adventures in AST Annotation (Reference Counting) Conclusions & Future Work
3 Renderscript Goals Develop a solution to providing a solid 60fps for our application frameworks Has to work well with Dalvik Has to work with existing hardware Has to scale to future hardware without requiring developers to rewrite their applications Developed applications must be portable across a variety of hardware. ARM v5, v7, NEON, x86, SSE, GPUs, DSPs Good performance across all devices instead of peak performance for one device at the expense of others Build a forward looking 3D graphics and compute API
4 Renderscript Design Principles Portability Applications need to be able to run on a wide range of hardware without changes Applications should be able take advantage of new instructions and processors without requiring a recompile or code changes Performance Should be able to utilize advanced vector operations Should be able to utilize non-cpu processors Usability Within the above constraints what can we do to help developers?
5 Portability To achieve portability, some code must be compiled on the device. This may happen either at install time, runtime, or possibly both. Leverage LLVM bitcode as our on-device portable format Generated by a Clang-based tool from C99 scripts running as part of the SDK build process LLVM bitcode is not 100% portable Endian (we use little endian) Alignment (use size of type - i.e. 8-byte aligned double) sizeof(long) == 8 to match Java
6 Performance Started with C99 due to its friendliness with compiling to a variety of HW targets and achieving good performance SMP primitives (foreach) built into the API Memory model designed to allow multiple memory spaces Explicit sync points between memory spaces Only script space is directly visible to the user Runtime is asynchronous with the application's Dalvik code All communication goes through FIFOs Runtime is designed so the developer is not aware of which processor a given script is running on
7 Usability Our goal is to make this as easy to use for developers as possible: Portability and performance constraints Complicated HW-specific features such as local memory and thread launch types are deliberately not exposed We don't allow developers to control which processors their apps run on This ties apps to specific HW Creates forward portability problems Feature set is CPU like, not "mobile" GPU like. Recursion, function pointers, full IEEE 754 fp32, fp64,...
8 Renderscript Components Offline compiler (llvm-rs-cc) Convert script files into portable bitcode and reflected Java layer Online JIT compiler (libbcc) Translate portable bitcode to appropriate machine code (CPU/GPU/DSP/...) Runtime library support (librs) Manage scripts from Dalvik layer Also provide basic support libraries (graphics drawing functions, etc.)
9 Offline Compiler: llvm-rs-cc Leverage Clang abstract syntax tree (AST) to reflect information and functionality back to Java layer Embeds metadata within bitcode (type,...) Performs aggressive machine-independent optimizations on host before emitting portable bitcode All bitcode supplied as a resource within.apk container
10 Offline Compiler Flow
11 Online JIT Compiler: libbcc Based on LLVM Currently supports ARM and x86 Future targets include GPU/DSP Performs target-specific optimizations and code generation Provides hooks for runtime to access embedded metadata Links dynamically against runtime library functions (graphics, math) Caches JITted scripts to improve startup time Uses MC CodeGen to generate.o librsloader is used to load the.o file libbcinfo provides bitcode translator + metadata extraction
12 Online JIT Compiler Flow
13 Renderscript Runtime: librs Manages Scripts and other Renderscript objects Provides implementation of runtime libraries (math, time, drawing, ref-counting,...) Allows allocation, binding of objects to Script globals Message-passing between control and runtime
14 Java Reflection Non-static global variables and functions are automatically reflected for use with Java app (control-side) Functions like set_globalname() Set a runtime global to a new value Not reflected for const variables Corresponding get_globalname() Returns the most recently set control-side value Starts out as initialized script-side value (zero-init is on by default because of C99)
15 Java Reflection (continued) Functions like bind_globalptr() Allows control side to bind Allocations to runtime global pointers Implements call-by-reference (as opposed to set()'s callby-value) Pointer types also reflect get() functions appropriately (that return the most recently bound Allocation) Functions like invoke_funcname() Allows control side to execute a particular runtime function (complete with parameter passing)
16 rsforeach Explicit parallelism (based on rs_allocation dimensions) Invokes root() function of script on each cell in allocation void root(const void *ain, void *aout, const void *usrdata, uint32_t x, uint32_t y) ICS - Reflect a Java helper to do parallel launch void foreach_root(allocation ain, Allocation aout) Need at least 1 of input/output allocation (determines launch dimensions) ICS - Improved type and dimensionality verification in reflected Java helper
17 rsforeach (continued) Also available in rs_core.rsh to the C99-based scripts: extern void attribute ((overloadable)) rsforeach(rs_script script, rs_allocation input, rs_allocation output, const void * usrdata, size_t usrdatalen); extern void attribute ((overloadable)) rsforeach(rs_script script, rs_allocation input, rs_allocation output, const void * usrdata, size_t usrdatalen, const rs_script_call_t *);
18 HelloCompute Example Available in Android SDK samples Converts a bitmap image to grayscale Exploits parallelism by using rsforeach on every pixel of an allocation (simple dot product of RGB values) mono.rs -> mono.bc + reflected to ScriptC_mono.java
19 Sample Script (mono.rs) #pragma version(1) #pragma rs java_package_name(com.example.android.rs.hellocompute) const static float3 gmonomult = {0.299f, 0.587f, 0.114f; void root(const uchar4 *v_in, uchar4 *v_out, uint32_t x, uint32_t y) { float4 f4 = rsunpackcolor8888(*v_in); float3 mono = dot(f4.rgb, gmonomult); *v_out = rspackcolorto8888(mono);
20 ScriptC_mono.java (generated pt. 1) package com.example.android.rs.hellocompute; import android.renderscript.*; import android.content.res.resources; public class ScriptC_mono extends ScriptC { // Constructor public ScriptC_mono(RenderScript rs, Resources resources, int id) { super(rs, resources, id); U8_4 = Element.U8_4(rs); private Element U8_4; private final static int mexportforeachidx_root = 0; public void foreach_root(allocation ain, Allocation aout) { // check ain if (!ain.gettype().getelement().iscompatible( U8_4)) { throw new RSRuntimeException("Type mismatch with U8_4!");...
21 ScriptC_mono.java (generated pt. 2)... // check aout if (!aout.gettype().getelement().iscompatible( U8_4)) { throw new RSRuntimeException("Type mismatch with U8_4!"); // Verify dimensions Type tin = ain.gettype(); Type tout = aout.gettype(); if ((tin.getcount()!= tout.getcount()) (tin.getx()!= tout.getx()) (tin.gety()!= tout.gety()) (tin.getz()!= tout.getz()) (tin.hasfaces()!= tout.hasfaces()) (tin.hasmipmaps()!= tout.hasmipmaps())) { throw new RSRuntimeException("Dimension mismatch between input and output parameters!"); foreach(mexportforeachidx_root, ain, aout, null);
22 HelloCompute.java (partial source) public class HelloCompute extends Activity {... private void createscript() { mrs = RenderScript.create(this); minallocation = Allocation.createFromBitmap(mRS, mbitmapin, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT); moutallocation = Allocation.createTyped(mRS, minallocation.gettype()); mscript = new ScriptC_mono(mRS, getresources(), R.raw.mono); mscript.foreach_root(minallocation, moutallocation); moutallocation.copyto(mbitmapout);...
23 LLVM Challenges Bitcode versioning Honeycomb Only supported legacy JIT path LLVM bitcode depending on MR version Ice Cream Sandwich MC CodeGen LLVM 3.0 bitcode - this one will last a while, right? ;) Solution - provide a translator to go between versions Partners only need to support latest bitcode format llvm-rs-cc generates older bitcode for older target API Metadata extraction Don't force partners rewrite this for every target backend + RS driver implementation
24 Source Differences android/external/clang 32 line diff from Clang upstream! Support for RGBA vector selection (28 lines) Support flag to force "long" to 64-bit (4 lines) Ready to upstream now android/external/llvm 368 line diff from LLVM upstream! Mostly patches for legacy JIT path (no longer used - essentially dead code) Stripped down a bit to fit on current tablet/smartphone No debugging support currently (since we don't emit DWARF from llvm-rs-cc today)
25 Adventures in AST Annotation Renderscript runtime manages a bunch of types Allocations in the sample script (plus other things too) How do we know when they can be cleaned up? Java-Side??? Script-Side??? Reference Counting rssetobject(), rsclearobject() Developers do not want to micro-manage opaque blobs Solution is to dynamically annotate script code to use these functions in the appropriate spots
26 Annotating the AST Update this in-place before we emit bitcode Need to do a few types of conversions on variables with an RS object type (rs_* types, not including rs_matrix*) Assignments -> rssetobject(&lhs, rhs) Insert destructor calls as rsclearobject(&local) for locals Global variables get cleaned up by runtime after script object is destroyed
27 Reference Counting Example rs_font globalin[10], globalout; void foo(int j) { rs_font localuninit; localuninit = globalin[0]; for (int i = 0; i < j; i++) { rs_font fornest = globalin[i]; switch (i) { case 3: return; case 7: continue; default: break; localuninit = fornest; globalout = localuninit; return;
28 RS Object Local Variables rs_font globalin[10], globalout; void foo(int j) { rs_font localuninit; localuninit = globalin[0]; for (int i = 0; i < j; i++) { rs_font fornest = globalin[i]; switch (i) { case 3: return; case 7: continue; default: break; localuninit = fornest; globalout = localuninit; return;
29 Assignment -> rssetobject() rs_font globalin[10], globalout; void foo(int j) { rs_font localuninit; rssetobject(&localuninit, globalin[0]); // Simple translation to call-expr for (int i = 0; i < j; i++) { rs_font fornest; rssetobject(&fornest, globalin[i]); switch (i) { case 3: // Initializers must be split before conversion return; case 7: continue; default: break; rssetobject(&localuninit, fornest); rssetobject(&globalout, localuninit); return;
30 Insert Destructor Calls rs_font globalin[10], globalout; void foo(int j) { rs_font localuninit; rssetobject(&localuninit, globalin[0]); for (int i = 0; i < j; i++) { rs_font fornest; rssetobject(&fornest, globalin[i]); switch (i) { case 3: rsclearobject(&localuninit); // Return statements always require that you rsclearobject(&fornest); // destroy any in-scope local objects (inside-out). return; case 7: rsclearobject(&fornest); // continue scopes to for-loop, so destroy fornest continue; default: break; // break scopes to switch-stmt, so do nothing rssetobject(&localuninit, fornest); rsclearobject(&fornest); // End of for-loop scope, so destroy fornest rssetobject(&globalout, localuninit); rsclearobject(&localuninit); // End outer scope (before return) return;
31 Conclusions Renderscript Portable, high-performance, and developer-friendly 3D graphics + compute acceleration path Hide complexity through compiler + runtime C99-based + foreach Ample use of reflection Library functions Opaque managed types + reference counting Future Work Debugging and profiling support Improved use of vector intrinsics See for the latest info
Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)
PARALLEL JAVASCRIPT Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) JAVASCRIPT Not connected with Java Scheme and self (dressed in c clothing) Lots of design errors (like automatic semicolon
Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child
Introducing A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Bio Tim Child 35 years experience of software development Formerly VP Oracle Corporation VP BEA Systems Inc.
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Comparison and Analysis of the Three Programming Models in Google Android
Comparison and Analysis of the Three Programming Models in Google Android Xi Qian Intel Corporation [email protected] Guangyu Zhu Intel Corporation [email protected] Xiao-Feng Li Intel Corporation [email protected]
Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61
F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Android Development: a System Perspective. Javier Orensanz
Android Development: a System Perspective Javier Orensanz 1 ARM - Linux and Communities Linux kernel GNU Tools 2 Linaro Partner Initiative Mission: Make open source development easier by delivering a common
Towards OpenMP Support in LLVM
Towards OpenMP Support in LLVM Alexey Bataev, Andrey Bokhanko, James Cownie Intel 1 Agenda What is the OpenMP * language? Who Can Benefit from the OpenMP language? OpenMP Language Support Early / Late
LLVM for OpenGL and other stuff. Chris Lattner Apple Computer [email protected]
LLVM for OpenGL and other stuff Chris Lattner Apple Computer [email protected] OpenGL JIT OpenGL Vertex/Pixel Shaders OpenGL Pixel/Vertex Shaders Small program, provided at run-time, to be run on each
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Our program is a practical knowledge oriented program aimed at making innovative and attractive applications for mobile
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X
NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X DU-05348-001_v6.5 August 2014 Installation and Verification on Mac OS X TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. System Requirements... 1 1.2. About
CUDA SKILLS. Yu-Hang Tang. June 23-26, 2015 CSRC, Beijing
CUDA SKILLS Yu-Hang Tang June 23-26, 2015 CSRC, Beijing day1.pdf at /home/ytang/slides Referece solutions coming soon Online CUDA API documentation http://docs.nvidia.com/cuda/index.html Yu-Hang Tang @
Freescale Semiconductor, I
nc. Application Note 6/2002 8-Bit Software Development Kit By Jiri Ryba Introduction 8-Bit SDK Overview This application note describes the features and advantages of the 8-bit SDK (software development
To Java SE 8, and Beyond (Plan B)
11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
High Performance or Cycle Accuracy?
CHIP DESIGN High Performance or Cycle Accuracy? You can have both! Bill Neifert, Carbon Design Systems Rob Kaye, ARM ATC-100 AGENDA Modelling 101 & Programmer s View (PV) Models Cycle Accurate Models Bringing
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
Using EDA Databases: Milkyway & OpenAccess
Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1 Outline History Choice Of Scripting
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
AP Computer Science Java Subset
APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
Hardware Acceleration for Just-In-Time Compilation on Heterogeneous Embedded Systems
Hardware Acceleration for Just-In-Time Compilation on Heterogeneous Embedded Systems A. Carbon, Y. Lhuillier, H.-P. Charles CEA LIST DACLE division Embedded Computing Embedded Software Laboratories France
Android Architecture. Alexandra Harrison & Jake Saxton
Android Architecture Alexandra Harrison & Jake Saxton Overview History of Android Architecture Five Layers Linux Kernel Android Runtime Libraries Application Framework Applications Summary History 2003
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!) ALON ZAKAI (MOZILLA) @kripken JavaScript..? At the LLVM developer's conference..? Everything compiles into LLVM bitcode The web is everywhere, and
WebView addjavascriptinterface Remote Code Execution 23/09/2013
MWR InfoSecurity Advisory WebView addjavascriptinterface Remote Code Execution 23/09/2013 Package Name Date Affected Versions Google Android Webkit WebView 23/09/2013 All Android applications built with
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
060010702 Mobile Application Development 2014
Que 1: Short question answer. Unit 1: Introduction to Android and Development tools 1. What kind of tool is used to simulate Android application? 2. Can we use C++ language for Android application development?
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Android Basics. Xin Yang 2016-05-06
Android Basics Xin Yang 2016-05-06 1 Outline of Lectures Lecture 1 (45mins) Android Basics Programming environment Components of an Android app Activity, lifecycle, intent Android anatomy Lecture 2 (45mins)
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.
Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps Hyeokgon Ryu, Infraware Technology, Ltd. Talking about Needs of Automated Converting from Android To Tizen Introduce
Oracle BI EE Implementation on Netezza. Prepared by SureShot Strategies, Inc.
Oracle BI EE Implementation on Netezza Prepared by SureShot Strategies, Inc. The goal of this paper is to give an insight to Netezza architecture and implementation experience to strategize Oracle BI EE
CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University
GPU Generations CSE 564: Visualization GPU Programming (First Steps) Klaus Mueller Computer Science Department Stony Brook University For the labs, 4th generation is desirable Graphics Hardware Pipeline
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
Android Programming and Security
Android Programming and Security Dependable and Secure Systems Andrea Saracino [email protected] Outlook (1) The Android Open Source Project Philosophy Players Outlook (2) Part I: Android System
Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga
Programming models for heterogeneous computing Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga Talk outline [30 slides] 1. Introduction [5 slides] 2.
GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS
Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,
Enhanced Project Management for Embedded C/C++ Programming using Software Components
Enhanced Project Management for Embedded C/C++ Programming using Software Components Evgueni Driouk Principal Software Engineer MCU Development Tools 1 Outline Introduction Challenges of embedded software
ANDROID DEVELOPER TOOLS TRAINING GTC 2014. Sébastien Dominé, NVIDIA
ANDROID DEVELOPER TOOLS TRAINING GTC 2014 Sébastien Dominé, NVIDIA AGENDA NVIDIA Developer Tools Introduction Multi-core CPU tools Graphics Developer Tools Compute Developer Tools NVIDIA Developer Tools
Optimizing AAA Games for Mobile Platforms
Optimizing AAA Games for Mobile Platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Epic Games, Unreal Engine 15 years in the industry 30 years of programming C64 demo
Mobile Application Development Android
Mobile Application Development Android MTAT.03.262 Satish Srirama [email protected] Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts
Overview. The Android operating system is like a cake consisting of various layers.
The Android Stack Overview The Android operating system is like a cake consisting of various layers. Each layer has its own characteristics and purpose but the layers are not always cleanly separated and
The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.
Installing the SDK This page describes how to install the Android SDK and set up your development environment for the first time. If you encounter any problems during installation, see the Troubleshooting
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
GTask Developing asynchronous applications for multi-core efficiency
GTask Developing asynchronous applications for multi-core efficiency February 2009 SCALE 7x Los Angeles Christian Hergert What Is It? GTask is a mini framework to help you write asynchronous code. Dependencies
Introduction to NaviGenie SDK Client API for Android
Introduction to NaviGenie SDK Client API for Android Overview 3 Data access solutions. 3 Use your own data in a highly optimized form 3 Hardware acceleration support.. 3 Package contents.. 4 Libraries.
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual
Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual Overview Metrics Monitor is part of Intel Media Server Studio 2015 for Linux Server. Metrics Monitor is a user space shared library
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Evolution of Java Zoran Budimlić (Rice University) The Beginnings Sun Microsystems 1990 - Create a language for delivering programs on small electronic
RISC-V Software Ecosystem. Andrew Waterman UC Berkeley [email protected]!
RISC-V Software Ecosystem Andrew Waterman UC Berkeley [email protected]! 2 Tethered vs. Standalone Systems Tethered systems are those that cannot stand alone - They depend on a host system to
OpenCL Static C++ Kernel Language Extension
OpenCL Static C++ Kernel Language Extension Document Revision: 04 Advanced Micro Devices Authors: Ofer Rosenberg, Benedict R. Gaster, Bixia Zheng, Irina Lipov December 15, 2011 Contents 1 Overview... 3
Intro to GPU computing. Spring 2015 Mark Silberstein, 048661, Technion 1
Intro to GPU computing Spring 2015 Mark Silberstein, 048661, Technion 1 Serial vs. parallel program One instruction at a time Multiple instructions in parallel Spring 2015 Mark Silberstein, 048661, Technion
Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming
Overview Lecture 1: an introduction to CUDA Mike Giles [email protected] hardware view software view Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Lecture 1 p.
09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Affdex SDK for Windows!
Affdex SDK for Windows SDK Developer Guide 1 Introduction Affdex SDK is the culmination of years of scientific research into emotion detection, validated across thousands of tests worldwide on PC platforms,
1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
SYSTEM ecos Embedded Configurable Operating System
BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original
CS378 -Mobile Computing. Android Overview and Android Development Environment
CS378 -Mobile Computing Android Overview and Android Development Environment What is Android? A software stack for mobile devices that includes An operating system Middleware Key Applications Uses Linux
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
New Technology Introduction: Android Studio with PushBot
FIRST Tech Challenge New Technology Introduction: Android Studio with PushBot Carol Chiang, Stephen O Keefe 12 September 2015 Overview Android Studio What is it? Android Studio system requirements Android
How To Write A Program In Anieme Frontend 2.3.2.2 (For A Non-Programmable Language)
The Insieme Compiler Frontend: A Clang-based C/C++ Frontend Master Thesis in Computer Science by Bernhard Höckner submitted to the Faculty of Mathematics, Computer Science and Physics of the University
OpenACC 2.0 and the PGI Accelerator Compilers
OpenACC 2.0 and the PGI Accelerator Compilers Michael Wolfe The Portland Group [email protected] This presentation discusses the additions made to the OpenACC API in Version 2.0. I will also present
Restraining Execution Environments
Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native
Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz [email protected] Assistant: Iulian Dragos INR 321, 368 64
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
How To Write Portable Programs In C
Writing Portable Programs COS 217 1 Goals of Today s Class Writing portable programs in C Sources of heterogeneity Data types, evaluation order, byte order, char set, Reading period and final exam Important
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC
OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC Driving industry innovation The goal of the OpenPOWER Foundation is to create an open ecosystem, using the POWER Architecture to share expertise,
C++ Programming Language
C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract
Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer
Generate Results. Real Models. Real Code. Real Fast. Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer Andreas Henriksson, Ericsson [email protected]
MA-WA1920: Enterprise iphone and ipad Programming
MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This
Application Development,.NET
Application Development,.NET Orsys, with 30 years of experience, is providing high quality, independant State of the Art seminars and hands-on courses corresponding to the needs of IT professionals. Orsys
Writing Applications for the GPU Using the RapidMind Development Platform
Writing Applications for the GPU Using the RapidMind Development Platform Contents Introduction... 1 Graphics Processing Units... 1 RapidMind Development Platform... 2 Writing RapidMind Enabled Applications...
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah
(DSF) Soft Core Prozessor NIOS II Stand Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de [email protected] NIOS II 1 1 What is Nios II? Altera s Second Generation
AMD GPU Architecture. OpenCL Tutorial, PPAM 2009. Dominik Behr September 13th, 2009
AMD GPU Architecture OpenCL Tutorial, PPAM 2009 Dominik Behr September 13th, 2009 Overview AMD GPU architecture How OpenCL maps on GPU and CPU How to optimize for AMD GPUs and CPUs in OpenCL 2 AMD GPU
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Scoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)
Semantic Analysis Scoping (Readings 7.1,7.4,7.6) Static Dynamic Parameter passing methods (7.5) Building symbol tables (7.6) How to use them to find multiply-declared and undeclared variables Type checking
IBM BPM V8.5 Standard Consistent Document Managment
IBM Software An IBM Proof of Technology IBM BPM V8.5 Standard Consistent Document Managment Lab Exercises Version 1.0 Author: Sebastian Carbajales An IBM Proof of Technology Catalog Number Copyright IBM
ODROID Multithreading in Android
Multithreading in Android 1 Index Android Overview Android Stack Android Development Tools Main Building Blocks(Activity Life Cycle) Threading in Android Multithreading via AsyncTask Class Multithreading
OpenACC Programming and Best Practices Guide
OpenACC Programming and Best Practices Guide June 2015 2015 openacc-standard.org. All Rights Reserved. Contents 1 Introduction 3 Writing Portable Code........................................... 3 What
Evaluation of CUDA Fortran for the CFD code Strukti
Evaluation of CUDA Fortran for the CFD code Strukti Practical term report from Stephan Soller High performance computing center Stuttgart 1 Stuttgart Media University 2 High performance computing center
ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android
Why Android? ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Dr Dimitris C. Dracopoulos A truly open, free development platform based on Linux and open source A component-based
Hacking your Droid ADITYA GUPTA
Hacking your Droid ADITYA GUPTA adityagupta1991 [at] gmail [dot] com facebook[dot]com/aditya1391 Twitter : @adi1391 INTRODUCTION After the recent developments in the smart phones, they are no longer used
Android Developer Fundamental 1
Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility
Creating and Using Databases for Android Applications
Creating and Using Databases for Android Applications Sunguk Lee * 1 Research Institute of Industrial Science and Technology Pohang, Korea [email protected] *Correspondent Author: Sunguk Lee* ([email protected])
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP
