SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
0xdroid –
community-developed
Android distribution by 0xlab
Jim Huang ( 黃敬群 ), 0xlab
OSDC.tw – Apr 25, 2010
0xdroid –
community-developed Android
distribution by 0xlab
社群
0xdroid –
community-developed Android
distribution by 0xlab
發布
0xdroid –
community-developed Android
distribution by 0xlab
最後才是 Android
0xdroid –
Community-developed Android
distribution by 0xlab
“0xlab” 與” 0xdroid" 開頭字母都是數字零 (0)
核心概念
在開放的硬體平台,
搭建開放的軟體
(Distribution)
透過開放原始碼的力
量,將成果累積
(Community)
0xdroid 不僅是個 Android
為基礎的專案,還是累積
創新的社群平台
0xdroid( 引用 COSCUP 2009 的議程簡報〈 How Android
Differs from GNU/Linux? And How can we FIX it? 〉 )
快速集中工作成果,提供可用的版本
專為懶人設計 (installer)
更加透明的開發 (issue tracking)
工作成果要能被重複使用 (patch based)
http://gitorious.org/0xdroid
選定開放的硬體平台
Beagleboard
在 Android 官方原始碼
發行的基礎上,充分支
援開放硬體
作為創新的準備 – Distribution
除了維護 0xlab 的開放
原始碼專案外,與其他
專案保持正面互動
(source code-level)
Android, Android-x86,
Rowboat, CyanogenMod,
OESF, ODROID, ...
作為創新的準備 – Community
Go 0xdroid!
Beagleboard DevKit8000
Go 0xdroid!
Beagleboard DevKit8000
Demo Video:
http://www.youtube.com/watch?v=OGpYk1p1UPI
在其他平台共享成果
ASUS EeePC
技術只是基礎,唯有開放與
合作,才能讓 ( 嵌入式系統
的 ) 軟體層次提昇
以 Android 作為切入點,保持開放共享、協同合作的
態度,讓硬體的應用增添更多可能性
打破軟體應用的藩籬
不僅只是移植或增添硬體支援
HAL 將硬體抽象化,使
軟體工程師不必花太
多心思去考慮程式將
在何種硬體上執行
Lucky!
We encountered the "bug" in Android accidently
或是剔除原有系統的瑕疵
更重要的是,知識累積與開放原始碼
0xlab 成員的背景
一群台灣的工程人員,熱衷於開放原始碼與消費性
電子產品研發,附加骨子裡的的叛逆情愫
0xlab 成員過去的貢獻
Mesa/3D, FreeType, GNU GCC,
Xorg/FreeDesktop, Linux Kernel, Openmoko
( 第一個開放原始碼的手機平台 ), OpenEmbedded,
LXDE, Debian GNU/Linux, FreeBSD, New
Chewing ( 新酷音輸入法 ), OpenVanilla ( 開放香草
輸入法框架 ), Kaffe, SCIM, PCManX, PCManFM,
Qt Extended/Qtopia, Opkg, FFmpeg/MPlayer,
OpenOCD, ...
Working Model
0xlab delivers the advantages of open source
software and development
快速引入新技術,連帶社群的大量測試與回饋
建立品質控管的機制
與其他開放原始碼專案合作 : CyanogenMod,
Android-x86, ODROID, OESF, …
Cooperation with Business Partners/Customers
upon the refined Android codebase
Working Model from 0xdroidCyanogenMod
(Qualcomm 7k/8k)
Android-x86Rowboat
(TI OMAP3)
Case Study: 0xdroid & android-x86
• 原本 0xdroid 與 android-x86 專案各自維護一套
software cursor 實做
– 交叉對照、相互貢獻後,現在共用一致的程式碼
• 0xlab 在 2009 年中,根基於 Mesa/3D ,發展了
世界上第一個 ( 也是唯一的 ) 開放原始碼的
libhgl (Hardware OpenGL|ES Acceleration for
Android) ,立即被 Android-x86 專案採納,獲
得廣泛測試
• 其他:圖形處理效能 , Dalvik VM, 3G modem, ...
Engineer from Motorola Mobile Device
Engineer from TI/embinux
Engineer from Qualcomm
Innovation Center, Inc.
0xlab not only maintains a full open source Android distribution,
the 0xdroid, but also established a community with opened mind.
Engineer from VMWare
Example:
ODM Android Device
0xlab Add-On: UI
customization,
Performance tuning,
wireless connectivity
enhancement, power
optimizations, Virtual
Machine tuning, …
與 0xlab 建立商業合作關係也是可行的
作為一個開放原始碼專案與商
業合作夥伴,我們在意整體的品
質、標準支援度,及軟體客制化
能力
Device Enablement
Platform Customizations and Verifications
Visual Differential
技術挑戰
• (Software) Graphics performance in Eclair is
much slower than Donut. (measured 15%~43% drop)
• Even worse, most pieces of Android frameworks expect good
3D/OpenGL|ES hardware. Google engineers don’t care about software
implementation.
• Compatibility
• Quality of Android Frameworks & HAL
• New Android Launcher (Launcher2) only
work under resolution 800x480.
• Users won’t find something if the target resolution is smaller.
Technical Impacts
0xlab’s Approaches
• Profile the whole Android and perform
aggressive optimizations dedicated to SoC
• Eliminate the overhead between Java framework and native libraries
• Implement ARMv6/ARMv7 optimized routines, SoC specific accelerations,
Android Eclair framework tweaks
• Avoid starvation of system resource
• Introduced Automated Testing Framework
• Integrated Android CTS
• Comprehensive benchmark suite
• Launcher/UI customizations
Comprehensive Benchmarking
• 0xlab develops a set of system
utilities for Android to perform
comprehensive system
benchmarking
• Dalvik VM performance
• OpenGL|ES performance
• Android Graphics framework performance
• I/O performance
• Connectivity performance
• Micro-benchmark: stanard C library,
system call, latency, Java invocation, ...
Consequently, 0xlab can control the system software
quality in the comprehensive ways.
大膽假設,小心求證,社群驗證
SoC specific enablement (minimal efforts)
• libopencorehw.so (OpenCore HW module)
http://gitorious.org/0xdroid/hardware_omap3_libopencorehw
• liboverlay.so (Graphics overlays module)
• libcamera.so (Camera HAL)
http://gitorious.org/0xdroid/hardware_omap3_camera
• libaudio.so (Audio HAL)
http://gitorious.org/0xdroid/hardware_alsa_sound
0xdroid provides the full
source code of reference
hardware acceleration
modules for Android.
Case Study:
Performance Evaluation on Beagleboard
• TI OMAP3 SoC powered
• 500 MHz / ARM Cortex A8
• 0xdroid – well-tuned Android for Beagleboard (TI OMAP 3530)
– http://code.google.com/p/0xdroid/
• Based on Android Eclair branch
– beagle-eclair-0x4 (Apr 25, 2010)
0xdroid provides the full source code of
reference hardware acceleration
modules for Android.
• libopencorehw.so (OpenCore HW module)
http://gitorious.org/0xdroid/hardware_omap3_libopencorehw
• liboverlay.so (Graphics overlays module)
• libcamera.so (Camera HAL)
http://gitorious.org/0xdroid/hardware_omap3_camera
• libaudio.so (Audio HAL)
http://gitorious.org/0xdroid/hardware_alsa_sound
Evalutions scenario: Introduced libopencorehw.so
(measured by utility “oprofile”)
Video playback :: Test Card Video (480x360, 25fps, H.264)
Evalutions scenario: Introduced libopencorehw.so
(measured by utility “oprofile”)
Video playback :: Action Video (480x360, 25fps, H.264)
Evalutions scenario: Introduced libopencorehw.so
(measured by utility “oprofile”)
Video playback :: Action Video (480x360, 25fps, H.264)
Evalutions scenario: Introduced libcamera.so
(measured by utility “oprofile”)
Camera preview (320x480)
Classical Android Architecture
Native Libraries
• Android C/C++ library
• 0xlab’s Optimizations
• Memory operations: Use ARMv6 unaligned access to optimize usual cases
• Atomic operations: Use ARMv6 ldrex/strex
• Endian/Data Type conversion: Use ARMv6 fast endian primitives. Useful for
TCP/IP (big endian  little endian coverting)
• ARMv7 SIMD/NEON optimization
• Introduced ARM Thumb2 instructions to optimize string operations
Bionic Libc
[[ L1 cached data ]] avg/peak
memcpy_neon :(4096 bytes copy) = 2132.7 MB/s / 2192.7 MB/s
memcpy_armv5:(4096 bytes copy) = 806.8 MB/s / 1289.2 MB/s
memcpy_arm :(4096 bytes copy) = 830.5 MB/s / 1396.0 MB/s
memcpy_neon :(6144 bytes copy) = 2176.2 MB/s / 2216.7 MB/s
memcpy_armv5:(6144 bytes copy) = 820.0 MB/s / 1300.5 MB/s
memcpy_arm :(6144 bytes copy) = 839.8 MB/s / 1411.7 MB/s
- memcpy_neon : 0xlab’s otimized ARM NEON version
- memcpy_armv5 : donut/cupcake ARMv5 optimized
- memcpy_arm : LGPL ARMv5 optimized
Memory Optimization to Utilize Advanced ARM Features
[[ very small data test ]] avg/peak
memcpy_neon :(24 bytes copy) = 230.9 MB/s / 551.4 MB/s
memcpy_armv5:(24 bytes copy) = 123.3 MB/s / 252.8 MB/s
memcpy_arm :(24 bytes copy) = 170.2 MB/s / 226.6 MB/s
memcpy_neon :(31 bytes copy) = 314.9 MB/s / 712.5 MB/s
memcpy_armv5:(31 bytes copy) = 143.2 MB/s / 326.6 MB/s
memcpy_arm :(31 bytes copy) = 197.0 MB/s / 272.1 MB/s
Android engineer included the
memcpy() improvements into Éclair
codebase!
• Provides system-wide surface “composer”, handling all surface rendering to frame buffer device
• Combine 2D and 3D surfaces and surfaces from multiple applications
• 0xlab’s improvements
• Eliminate the redundant computation for Surfaces (performance equals to Donut now)
• Enable SoC 2D accelerations
• Optimize PixelFlinger through ARMv6/ARMv7 optimized routines
Native Server: Surface Flinger
PixelFlinger JIT
optimized scanline_t32cb16
Reference benchmark on Beagleboard (TI OMAP353x) at 500 MHz
scanline_t32cb16_c memory bandwidth: 31.63 MB/s
scanline_t32cb16_neon memory bandwidth: 147.69 MB/s
It could dramatically improve boot animation performance.
NEON instructions
Advanced ARM SIMD
PixelFlinger JIT
optimized t32cb16blend
Reference benchmark on Beagleboard 500MHz:
scanline_t32cb16blend_c memory bandwidth: 12.81 MB/s
scanline_t32cb16blend_arm memory bandwidth: 57.61 MB/s
scanline_t32cb16blend_neon memory bandwidth: 128.66 MB/s
scanline_t32cb16blend_c: generic C implementation.
scanline_t32cb16blend_arm: ARMv5 optimized by Android.
scanline_t32cb16blend_neon: ARMv7 tweaked implementation.
NEON instructions
Advanced ARM SIMD
PixelFlinger JIT
00000077:03515104_00000000_00000000
(Blends a single color into an RGB565 buffer.)
Before: 27 inst/pixel, After: 24 inst/pixel, Improvement: 12.5%
00000077:03545404_00000A01_00000000
(Blends RGBA8888 texture into an RGB565 buffer using alpha.)
Before: 30 inst/pixel, After: 27 inst/pixel, Improvement: 11.1%
00000077:03545404_00000A04_00000000
(Blends RGB565 texture into an RGB565 buffer using alpha.)
Before: 29 inst/pixel, After: 27 inst/pixel, Improvement: 7.4%
UBFX instructionSigned and Unsigned Bit Field Extract. Copies adjacent bits
from one register into the least significant bits of a second register,
and sign extends or zero extends to 32 bits.
PixelFlinger JIT
Code has been scheduled for A8 pipeline, specifically aiming to
allow multiplies to issue in pipeline 0, for efficient dual issue
operation.
Testing on SpriteMethodTest (http://code.google.com/p/apps-for-
android/) gives
8% improvement (12.7 vs. 13.7 fps.)
UBXTB16 instructionIntroducing the UXTB16 instruction allows removal of some masking
code, and is beneficial from a pipeline point of view - lots of UXTB16
followed by MUL sequences.
• Manages all audio output devices
• Handles audio routing to various outputs
• 0xlab’s involvement
– Extend the past experience about Android Audio processing
and avoid unexpected / abnormal problems
– Remove hard-coded Android implementations
Native Server: Audio Flinger
HAL (Hardware Abstraction Libraries)
• User space C/C++ library layer
• Defines the interface that Android requires
hardware “drivers” to implement
• Separates the Android platform logic from the
hardware interface
• 0xlab’s involvement
• Ensure the software quality about WiFi / Bluetooth / FM including
API level
• Extra peripherals enablement on Beagleboard: Camera, Motion
Sensor, GSM modem/3G data card (full source)
• Properly handle GPL issues
HAL (Hardware Abstraction Libraries)
Android Runtime
• Dalvik Virtual Machine is the core of Android
Java Framework
• DDMS (Dalvik Debug Monitor Server) could expose the systyem
information
• 0xlab’s Enhancements
• Enable Just-In-Time compiler to improve Java execution (expectation: 2x
speedup)
• System stability and security
• CTS specific code introspection
Android Runtime
Application Framework
• Activity manager
– Manage the life cycle of applications
• Content Provider
– Share data between applications
• Resource Manager
– Manager non-code resource
• Notification Manager
– Display custom alerts in the status bar
• Views System
– A rich and extensible set, which can construct UI
• 0xlab’s Involvement
– Comply with CTS
– Eliminate race condition, system server crash, memory usage, etc.
– Properly backport the fixes from Froyo branch
Application Framework
• OBEX: OPP, FTP profiles with UI support
– Check
http://i-miss-erin.blogspot.com/2009/10/android-bluetooth-ui-application-from.html
– Used by CyanogenMod, a famous community build used
on HTC Android devices.
Bluetooth
Ethernet manager
• Supports configure and
display Ethernet connection
as well.
Even able to make phone call
through external GSM modem
• External modem.
Applications
• Launcher2, Camera, Album, Contacts, Email,
Messaging, Music, Phone, Alarm, etc.
• 0xlab’s Improvements
– Extensive and revised Launcher2 (re-)implementation
• VGA/HVGA Display support
• Visual effects smoothly on OMAP3 and Qualcomm
7K (even no GPU) platforms
• Pretty straightforward visual customizations
• Rapid development with art designer
– Automated Testing Framework accelerates the UI
component verifications
Applications
HTC-Sense UI
Android Official
0xdroid
Disassemble Launcher
AppWidget
Some UI changes by 0xLab
• BottomBar
Source code: http://gitorious.org/0xdroid/packages_apps_launcher
• PositionBar
• Visible Hint
• ThemeSelector
– http://code.google.com/p/0xdroid/wiki/LauncherTheme
0xdroid + Beagleboard 是個理想的開放軟硬體平
台,適合作研究實驗或教學應用 ( 如交通大學 )
廣泛的測試與回饋
提供新的應用 ( 概念或實做 )
思考 : 借力使力 - 如何讓 Android 善用社群已有
的豐富寶藏,放入社群裡的優質套件
改進硬體抽象層,降低移植的複雜度
將成果分享
企盼您的協助
0xdroid Roadmap:
http://code.google.com/p/0xdroid/wiki/Roadmap
Source repository: http://gitorious.org/0xdroid
Wiki: http://code.google.com/p/0xdroid/w/list
Demo videos: http://www.youtube.com/channel/0xlab
Mailing-list:
General discussion:
http://groups.google.com/group/0xlab-discuss
Technical / Development:
http://groups.google.com/group/0xlab-devel
IRC channel (FreeNode): #0xlab
聯繫 0xlab/0xdroid 開發團隊
Reference
• 0xlab website
http://0xlab.org/
• 0xdroid project
http://code.google.com/p/0xdroid/
• CyanogenMod
http://www.cyanogenmod.com/
• Android-x86
http://www.android-x86.org/
• Open Embedded Software Foundation (OESF)
http://www.oesf.jp/
Thank you
http://0xlab.org

Weitere ähnliche Inhalte

Was ist angesagt?

clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning AccelerationclCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning AccelerationIntel® Software
 
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsIntel® Software
 
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoWebinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoEmbarcados
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Dmitry Alexandrov
 
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Intel® Software
 
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...Intel® Software
 
Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*Intel® Software
 
TFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU DelegatesTFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU DelegatesKoan-Sin Tan
 
The Architecture of 11th Generation Intel® Processor Graphics
The Architecture of 11th Generation Intel® Processor GraphicsThe Architecture of 11th Generation Intel® Processor Graphics
The Architecture of 11th Generation Intel® Processor GraphicsIntel® Software
 
Optimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER IIOptimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER IIIntel® Software
 
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Slide_N
 
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...Intel® Software
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Intel® Software
 
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...Intel® Software
 
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...Intel® Software
 
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...Intel® Software
 

Was ist angesagt? (20)

clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning AccelerationclCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
 
Build Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVMBuild Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVM
 
No[1][1]
No[1][1]No[1][1]
No[1][1]
 
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® Graphics
 
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoWebinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
 
Java on the GPU: Where are we now?
Java on the GPU: Where are we now?Java on the GPU: Where are we now?
Java on the GPU: Where are we now?
 
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
 
Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*
 
TFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU DelegatesTFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU Delegates
 
The Architecture of 11th Generation Intel® Processor Graphics
The Architecture of 11th Generation Intel® Processor GraphicsThe Architecture of 11th Generation Intel® Processor Graphics
The Architecture of 11th Generation Intel® Processor Graphics
 
Optimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER IIOptimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER II
 
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
 
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
 
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
 
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
 
Ibm cell
Ibm cell Ibm cell
Ibm cell
 
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...
 

Andere mochten auch

General Class Jeopardy
General Class JeopardyGeneral Class Jeopardy
General Class JeopardyW1MGZ
 
Best e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressBest e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressW1MGZ
 
Best e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressBest e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressW1MGZ
 
Best e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressBest e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressW1MGZ
 
Advancednbems 120814093714-phpapp01
Advancednbems 120814093714-phpapp01Advancednbems 120814093714-phpapp01
Advancednbems 120814093714-phpapp01W1MGZ
 
Repairing a damaged economy
Repairing a damaged economyRepairing a damaged economy
Repairing a damaged economyDeshawn_Branch
 

Andere mochten auch (7)

General Class Jeopardy
General Class JeopardyGeneral Class Jeopardy
General Class Jeopardy
 
Best e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressBest e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progress
 
Best e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressBest e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progress
 
Best e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progressBest e p jepperdee general class edition in progress
Best e p jepperdee general class edition in progress
 
Blake shelton
Blake sheltonBlake shelton
Blake shelton
 
Advancednbems 120814093714-phpapp01
Advancednbems 120814093714-phpapp01Advancednbems 120814093714-phpapp01
Advancednbems 120814093714-phpapp01
 
Repairing a damaged economy
Repairing a damaged economyRepairing a damaged economy
Repairing a damaged economy
 

Ähnlich wie 0xdroid osdc-2010-100426084937-phpapp02

Moving NEON to 64 bits
Moving NEON to 64 bitsMoving NEON to 64 bits
Moving NEON to 64 bitsChiou-Nan Chen
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boardsLF Events
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: IntroductionJollen Chen
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...ryancox
 
Android on IA devices and Intel Tools
Android on IA devices and Intel ToolsAndroid on IA devices and Intel Tools
Android on IA devices and Intel ToolsXavier Hallade
 
Learning AOSP - Building AOSP for Nexus 7
Learning AOSP - Building AOSP for Nexus 7Learning AOSP - Building AOSP for Nexus 7
Learning AOSP - Building AOSP for Nexus 7Nanik Tolaram
 
BigAndroidBBQ 2012: XDA Session - Future of Android Development
BigAndroidBBQ 2012: XDA Session - Future of Android DevelopmentBigAndroidBBQ 2012: XDA Session - Future of Android Development
BigAndroidBBQ 2012: XDA Session - Future of Android DevelopmentJeremy Meiss
 
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...Edge AI and Vision Alliance
 
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMDEdge AI and Vision Alliance
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Kynetics
 
Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)
Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)
Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)Talal Khaliq
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...Christopher Diamantopoulos
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous androidThierry Gayet
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Intel® Software
 
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...BeMyApp
 
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey96Boards
 

Ähnlich wie 0xdroid osdc-2010-100426084937-phpapp02 (20)

Next Stop, Android
Next Stop, AndroidNext Stop, Android
Next Stop, Android
 
Moving NEON to 64 bits
Moving NEON to 64 bitsMoving NEON to 64 bits
Moving NEON to 64 bits
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boards
 
ARM Processor Tutorial
ARM Processor Tutorial ARM Processor Tutorial
ARM Processor Tutorial
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
 
Android on IA devices and Intel Tools
Android on IA devices and Intel ToolsAndroid on IA devices and Intel Tools
Android on IA devices and Intel Tools
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
Learning AOSP - Building AOSP for Nexus 7
Learning AOSP - Building AOSP for Nexus 7Learning AOSP - Building AOSP for Nexus 7
Learning AOSP - Building AOSP for Nexus 7
 
BigAndroidBBQ 2012: XDA Session - Future of Android Development
BigAndroidBBQ 2012: XDA Session - Future of Android DevelopmentBigAndroidBBQ 2012: XDA Session - Future of Android Development
BigAndroidBBQ 2012: XDA Session - Future of Android Development
 
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
 
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7
 
Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)
Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)
Design of 32 Bit Processor Using 8051 and Leon3 (Progress Report)
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous android
 
Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone Discover System Facilities inside Your Android Phone
Discover System Facilities inside Your Android Phone
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)
 
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
 
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey
 

Kürzlich hochgeladen

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

0xdroid osdc-2010-100426084937-phpapp02

  • 1. 0xdroid – community-developed Android distribution by 0xlab Jim Huang ( 黃敬群 ), 0xlab OSDC.tw – Apr 25, 2010
  • 5. 0xdroid – Community-developed Android distribution by 0xlab “0xlab” 與” 0xdroid" 開頭字母都是數字零 (0)
  • 7.
  • 9. 0xdroid( 引用 COSCUP 2009 的議程簡報〈 How Android Differs from GNU/Linux? And How can we FIX it? 〉 ) 快速集中工作成果,提供可用的版本 專為懶人設計 (installer) 更加透明的開發 (issue tracking) 工作成果要能被重複使用 (patch based) http://gitorious.org/0xdroid
  • 11. 除了維護 0xlab 的開放 原始碼專案外,與其他 專案保持正面互動 (source code-level) Android, Android-x86, Rowboat, CyanogenMod, OESF, ODROID, ... 作為創新的準備 – Community
  • 13. Go 0xdroid! Beagleboard DevKit8000 Demo Video: http://www.youtube.com/watch?v=OGpYk1p1UPI
  • 15. 技術只是基礎,唯有開放與 合作,才能讓 ( 嵌入式系統 的 ) 軟體層次提昇 以 Android 作為切入點,保持開放共享、協同合作的 態度,讓硬體的應用增添更多可能性 打破軟體應用的藩籬
  • 17. Lucky! We encountered the "bug" in Android accidently 或是剔除原有系統的瑕疵
  • 18. 更重要的是,知識累積與開放原始碼 0xlab 成員的背景 一群台灣的工程人員,熱衷於開放原始碼與消費性 電子產品研發,附加骨子裡的的叛逆情愫 0xlab 成員過去的貢獻 Mesa/3D, FreeType, GNU GCC, Xorg/FreeDesktop, Linux Kernel, Openmoko ( 第一個開放原始碼的手機平台 ), OpenEmbedded, LXDE, Debian GNU/Linux, FreeBSD, New Chewing ( 新酷音輸入法 ), OpenVanilla ( 開放香草 輸入法框架 ), Kaffe, SCIM, PCManX, PCManFM, Qt Extended/Qtopia, Opkg, FFmpeg/MPlayer, OpenOCD, ...
  • 19. Working Model 0xlab delivers the advantages of open source software and development 快速引入新技術,連帶社群的大量測試與回饋 建立品質控管的機制 與其他開放原始碼專案合作 : CyanogenMod, Android-x86, ODROID, OESF, … Cooperation with Business Partners/Customers upon the refined Android codebase
  • 20. Working Model from 0xdroidCyanogenMod (Qualcomm 7k/8k) Android-x86Rowboat (TI OMAP3)
  • 21. Case Study: 0xdroid & android-x86 • 原本 0xdroid 與 android-x86 專案各自維護一套 software cursor 實做 – 交叉對照、相互貢獻後,現在共用一致的程式碼 • 0xlab 在 2009 年中,根基於 Mesa/3D ,發展了 世界上第一個 ( 也是唯一的 ) 開放原始碼的 libhgl (Hardware OpenGL|ES Acceleration for Android) ,立即被 Android-x86 專案採納,獲 得廣泛測試 • 其他:圖形處理效能 , Dalvik VM, 3G modem, ...
  • 22. Engineer from Motorola Mobile Device Engineer from TI/embinux Engineer from Qualcomm Innovation Center, Inc. 0xlab not only maintains a full open source Android distribution, the 0xdroid, but also established a community with opened mind. Engineer from VMWare
  • 23. Example: ODM Android Device 0xlab Add-On: UI customization, Performance tuning, wireless connectivity enhancement, power optimizations, Virtual Machine tuning, … 與 0xlab 建立商業合作關係也是可行的
  • 25. 技術挑戰 • (Software) Graphics performance in Eclair is much slower than Donut. (measured 15%~43% drop) • Even worse, most pieces of Android frameworks expect good 3D/OpenGL|ES hardware. Google engineers don’t care about software implementation. • Compatibility • Quality of Android Frameworks & HAL • New Android Launcher (Launcher2) only work under resolution 800x480. • Users won’t find something if the target resolution is smaller. Technical Impacts
  • 26. 0xlab’s Approaches • Profile the whole Android and perform aggressive optimizations dedicated to SoC • Eliminate the overhead between Java framework and native libraries • Implement ARMv6/ARMv7 optimized routines, SoC specific accelerations, Android Eclair framework tweaks • Avoid starvation of system resource • Introduced Automated Testing Framework • Integrated Android CTS • Comprehensive benchmark suite • Launcher/UI customizations
  • 27. Comprehensive Benchmarking • 0xlab develops a set of system utilities for Android to perform comprehensive system benchmarking • Dalvik VM performance • OpenGL|ES performance • Android Graphics framework performance • I/O performance • Connectivity performance • Micro-benchmark: stanard C library, system call, latency, Java invocation, ... Consequently, 0xlab can control the system software quality in the comprehensive ways.
  • 29. SoC specific enablement (minimal efforts) • libopencorehw.so (OpenCore HW module) http://gitorious.org/0xdroid/hardware_omap3_libopencorehw • liboverlay.so (Graphics overlays module) • libcamera.so (Camera HAL) http://gitorious.org/0xdroid/hardware_omap3_camera • libaudio.so (Audio HAL) http://gitorious.org/0xdroid/hardware_alsa_sound 0xdroid provides the full source code of reference hardware acceleration modules for Android.
  • 30. Case Study: Performance Evaluation on Beagleboard • TI OMAP3 SoC powered • 500 MHz / ARM Cortex A8 • 0xdroid – well-tuned Android for Beagleboard (TI OMAP 3530) – http://code.google.com/p/0xdroid/ • Based on Android Eclair branch – beagle-eclair-0x4 (Apr 25, 2010) 0xdroid provides the full source code of reference hardware acceleration modules for Android. • libopencorehw.so (OpenCore HW module) http://gitorious.org/0xdroid/hardware_omap3_libopencorehw • liboverlay.so (Graphics overlays module) • libcamera.so (Camera HAL) http://gitorious.org/0xdroid/hardware_omap3_camera • libaudio.so (Audio HAL) http://gitorious.org/0xdroid/hardware_alsa_sound
  • 31. Evalutions scenario: Introduced libopencorehw.so (measured by utility “oprofile”) Video playback :: Test Card Video (480x360, 25fps, H.264)
  • 32. Evalutions scenario: Introduced libopencorehw.so (measured by utility “oprofile”) Video playback :: Action Video (480x360, 25fps, H.264)
  • 33. Evalutions scenario: Introduced libopencorehw.so (measured by utility “oprofile”) Video playback :: Action Video (480x360, 25fps, H.264)
  • 34. Evalutions scenario: Introduced libcamera.so (measured by utility “oprofile”) Camera preview (320x480)
  • 37. • Android C/C++ library • 0xlab’s Optimizations • Memory operations: Use ARMv6 unaligned access to optimize usual cases • Atomic operations: Use ARMv6 ldrex/strex • Endian/Data Type conversion: Use ARMv6 fast endian primitives. Useful for TCP/IP (big endian  little endian coverting) • ARMv7 SIMD/NEON optimization • Introduced ARM Thumb2 instructions to optimize string operations Bionic Libc
  • 38. [[ L1 cached data ]] avg/peak memcpy_neon :(4096 bytes copy) = 2132.7 MB/s / 2192.7 MB/s memcpy_armv5:(4096 bytes copy) = 806.8 MB/s / 1289.2 MB/s memcpy_arm :(4096 bytes copy) = 830.5 MB/s / 1396.0 MB/s memcpy_neon :(6144 bytes copy) = 2176.2 MB/s / 2216.7 MB/s memcpy_armv5:(6144 bytes copy) = 820.0 MB/s / 1300.5 MB/s memcpy_arm :(6144 bytes copy) = 839.8 MB/s / 1411.7 MB/s - memcpy_neon : 0xlab’s otimized ARM NEON version - memcpy_armv5 : donut/cupcake ARMv5 optimized - memcpy_arm : LGPL ARMv5 optimized Memory Optimization to Utilize Advanced ARM Features [[ very small data test ]] avg/peak memcpy_neon :(24 bytes copy) = 230.9 MB/s / 551.4 MB/s memcpy_armv5:(24 bytes copy) = 123.3 MB/s / 252.8 MB/s memcpy_arm :(24 bytes copy) = 170.2 MB/s / 226.6 MB/s memcpy_neon :(31 bytes copy) = 314.9 MB/s / 712.5 MB/s memcpy_armv5:(31 bytes copy) = 143.2 MB/s / 326.6 MB/s memcpy_arm :(31 bytes copy) = 197.0 MB/s / 272.1 MB/s Android engineer included the memcpy() improvements into Éclair codebase!
  • 39. • Provides system-wide surface “composer”, handling all surface rendering to frame buffer device • Combine 2D and 3D surfaces and surfaces from multiple applications • 0xlab’s improvements • Eliminate the redundant computation for Surfaces (performance equals to Donut now) • Enable SoC 2D accelerations • Optimize PixelFlinger through ARMv6/ARMv7 optimized routines Native Server: Surface Flinger
  • 40.
  • 41. PixelFlinger JIT optimized scanline_t32cb16 Reference benchmark on Beagleboard (TI OMAP353x) at 500 MHz scanline_t32cb16_c memory bandwidth: 31.63 MB/s scanline_t32cb16_neon memory bandwidth: 147.69 MB/s It could dramatically improve boot animation performance. NEON instructions Advanced ARM SIMD
  • 42. PixelFlinger JIT optimized t32cb16blend Reference benchmark on Beagleboard 500MHz: scanline_t32cb16blend_c memory bandwidth: 12.81 MB/s scanline_t32cb16blend_arm memory bandwidth: 57.61 MB/s scanline_t32cb16blend_neon memory bandwidth: 128.66 MB/s scanline_t32cb16blend_c: generic C implementation. scanline_t32cb16blend_arm: ARMv5 optimized by Android. scanline_t32cb16blend_neon: ARMv7 tweaked implementation. NEON instructions Advanced ARM SIMD
  • 43. PixelFlinger JIT 00000077:03515104_00000000_00000000 (Blends a single color into an RGB565 buffer.) Before: 27 inst/pixel, After: 24 inst/pixel, Improvement: 12.5% 00000077:03545404_00000A01_00000000 (Blends RGBA8888 texture into an RGB565 buffer using alpha.) Before: 30 inst/pixel, After: 27 inst/pixel, Improvement: 11.1% 00000077:03545404_00000A04_00000000 (Blends RGB565 texture into an RGB565 buffer using alpha.) Before: 29 inst/pixel, After: 27 inst/pixel, Improvement: 7.4% UBFX instructionSigned and Unsigned Bit Field Extract. Copies adjacent bits from one register into the least significant bits of a second register, and sign extends or zero extends to 32 bits.
  • 44. PixelFlinger JIT Code has been scheduled for A8 pipeline, specifically aiming to allow multiplies to issue in pipeline 0, for efficient dual issue operation. Testing on SpriteMethodTest (http://code.google.com/p/apps-for- android/) gives 8% improvement (12.7 vs. 13.7 fps.) UBXTB16 instructionIntroducing the UXTB16 instruction allows removal of some masking code, and is beneficial from a pipeline point of view - lots of UXTB16 followed by MUL sequences.
  • 45. • Manages all audio output devices • Handles audio routing to various outputs • 0xlab’s involvement – Extend the past experience about Android Audio processing and avoid unexpected / abnormal problems – Remove hard-coded Android implementations Native Server: Audio Flinger
  • 47. • User space C/C++ library layer • Defines the interface that Android requires hardware “drivers” to implement • Separates the Android platform logic from the hardware interface • 0xlab’s involvement • Ensure the software quality about WiFi / Bluetooth / FM including API level • Extra peripherals enablement on Beagleboard: Camera, Motion Sensor, GSM modem/3G data card (full source) • Properly handle GPL issues HAL (Hardware Abstraction Libraries)
  • 49. • Dalvik Virtual Machine is the core of Android Java Framework • DDMS (Dalvik Debug Monitor Server) could expose the systyem information • 0xlab’s Enhancements • Enable Just-In-Time compiler to improve Java execution (expectation: 2x speedup) • System stability and security • CTS specific code introspection Android Runtime
  • 51. • Activity manager – Manage the life cycle of applications • Content Provider – Share data between applications • Resource Manager – Manager non-code resource • Notification Manager – Display custom alerts in the status bar • Views System – A rich and extensible set, which can construct UI • 0xlab’s Involvement – Comply with CTS – Eliminate race condition, system server crash, memory usage, etc. – Properly backport the fixes from Froyo branch Application Framework
  • 52. • OBEX: OPP, FTP profiles with UI support – Check http://i-miss-erin.blogspot.com/2009/10/android-bluetooth-ui-application-from.html – Used by CyanogenMod, a famous community build used on HTC Android devices. Bluetooth
  • 53. Ethernet manager • Supports configure and display Ethernet connection as well.
  • 54. Even able to make phone call through external GSM modem • External modem.
  • 56. • Launcher2, Camera, Album, Contacts, Email, Messaging, Music, Phone, Alarm, etc. • 0xlab’s Improvements – Extensive and revised Launcher2 (re-)implementation • VGA/HVGA Display support • Visual effects smoothly on OMAP3 and Qualcomm 7K (even no GPU) platforms • Pretty straightforward visual customizations • Rapid development with art designer – Automated Testing Framework accelerates the UI component verifications Applications
  • 59. Some UI changes by 0xLab • BottomBar Source code: http://gitorious.org/0xdroid/packages_apps_launcher • PositionBar • Visible Hint • ThemeSelector – http://code.google.com/p/0xdroid/wiki/LauncherTheme
  • 60. 0xdroid + Beagleboard 是個理想的開放軟硬體平 台,適合作研究實驗或教學應用 ( 如交通大學 ) 廣泛的測試與回饋 提供新的應用 ( 概念或實做 ) 思考 : 借力使力 - 如何讓 Android 善用社群已有 的豐富寶藏,放入社群裡的優質套件 改進硬體抽象層,降低移植的複雜度 將成果分享 企盼您的協助
  • 61. 0xdroid Roadmap: http://code.google.com/p/0xdroid/wiki/Roadmap Source repository: http://gitorious.org/0xdroid Wiki: http://code.google.com/p/0xdroid/w/list Demo videos: http://www.youtube.com/channel/0xlab Mailing-list: General discussion: http://groups.google.com/group/0xlab-discuss Technical / Development: http://groups.google.com/group/0xlab-devel IRC channel (FreeNode): #0xlab 聯繫 0xlab/0xdroid 開發團隊
  • 62. Reference • 0xlab website http://0xlab.org/ • 0xdroid project http://code.google.com/p/0xdroid/ • CyanogenMod http://www.cyanogenmod.com/ • Android-x86 http://www.android-x86.org/ • Open Embedded Software Foundation (OESF) http://www.oesf.jp/