More Related Content
PDF
HDR Theory and practicce (JP) PDF
カスタムメモリマネージャと高速なメモリアロケータについて PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online PDF
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて PPTX
PDF
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について PPTX
PDF
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER What's hot
PDF
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions PDF
PDF
PDF
Zynqで始めるUSB開発-FPGAとARMで動くUSBオーディオデバイスの実例とともに- PPTX
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019 PDF
PDF
PDF
PPTX
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD PPTX
UE4で使えるSpatialized Audio Plug-inどう違うの?どれ使えばいいの? PDF
PDF
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap PPTX
PPTX
PDF
サウンド実装の手間を省くための CRI ADX2 UnityAudio完全に理解した PDF
PPTX
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方 PPTX
PPTX
PPTX
Viewers also liked
DOCX
Biases in military history PDF
In the DOM, no one will hear you scream PDF
グローバル理工人材のための今日から使える検索テクニック ―もう日本語でググるのはやめよう PDF
PPTX
Alejandro Fernandez vs Luis Miguel PDF
マイクロソフトが創る未来 医療編 20170401 PDF
PPTX
Elixir-Conf-Japan-2017-session-ohr486 PPTX
Tercera Trobada #Xatac5a Tarragona PDF
A deep dive into Drupal 8 routing PDF
フェーズI/IIに置けるベイジアン・アダプティブ・メソッド PDF
Marketing's important. But marketers often aren't. PPTX
Immunisation against bacteria PPTX
Mr. Nitin bassi IEWP @ 2nd India-EU Water Forum @ World Sustainable Developme... PPTX
A Building Framework for the All Renewable Energy Future PPTX
Wasabi waiter game - Gamification in recruitment - Manu Melwin Joy PDF
Frank Michael encore un peu plus riche PDF
Experience WOW. A new benchmark in MDP / EDP PPT
Critiques of Community Forestry PDF
Groeispurt voor bvba kunstenaar Koen Vanmechelen Similar to ARM Compute Library
PPTX
CMake multiplatform build-tool KEY
PDF
1072: アプリケーション開発を加速するCUDAライブラリ PDF
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎 DOC
GPGPUによるパーソナルスーパーコンピュータの可能性 PDF
PDF
PPTX
PDF
PDF
PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例 PDF
PDF
GPU と PYTHON と、それから最近の NVIDIA PPTX
2012 1203-researchers-cafe PDF
【A-1】AIを支えるGPUコンピューティングの今 KEY
PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成 PDF
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10) PPTX
PDF
20170823【GWゼミ #2】AWS Lambda上でOpenCVを使った画像処理 More from Mr. Vengineer
PDF
XilinxのxsimでSoftware Driven Verification.pdf PDF
VerilatorとSystemCでSoftware Driven Verification PDF
PDF
PDF
Cloud TPU Driver API ソースコード解析 PDF
Cloud Deep Learning Chips Training & Inference PDF
TensorFlow Lite Delegateとは? PDF
Pixel Visual Core device driver source code analysis PDF
Google Edge TPUで TensorFlow Liteを使った時に 何をやっているのかを妄想してみる 2 「エッジAIモダン計測制御の世界」オ... PDF
TensorFlow XLA 「XLAとは、から、最近の利用事例について」 PDF
Facebook Glow Compiler のソースコードをグダグダ語る会 PDF
PDF
Bridge TensorFlow to run on Intel nGraph backends (v0.4) PDF
Bridge TensorFlow to run on Intel nGraph backends (v0.5) PDF
PDF
TensorFlow local Python XLA client PDF
PDF
PDF
Tensorflow dynamically loadable XLA plugin ソースコード解析 PDF
ARM Compute Library
- 1.
- 2.
- 3.
ビルド
% scons debug=1neon=1 opencl=0 arch=arm64-v8a
Werror : Enable/disable the -Werror compilation flag (Default=1) (0|1)
debug : Debug (default=0) (0|1)
arch : Target Architecture
(default=armv7a) (armv7a|arm64-v8a|arm64-v8.2-a|x86)
os : Target OS (default=linux) (linux|android|bare_metal)
build : Build type: (default=cross_compile) (native|cross_compile)
opencl : Enable OpenCL support(Default=1) (0|1)
neon : Enable Neon support(Default=0) (0|1)
- 4.
- 5.
画像処理関連
・Basic arithmetic, mathematicaland binary operator functions
・Colour manipulation (conversion, channel extraction, and more)
・Convolution filters (Sobel, Gaussian, and more)
・Canny Edge, Harris corners, optical flow and more
・Pyramids (such as Laplacians)
・HOG (Histogram of Oriented Gradients)
・SVM (Support Vector Machines)
・H/SGEMM (Half and Single precision General Matrix Multiply)
- 6.
- 7.
サンプルコード:scale (NEON)
PPMLoader ppm;ppmファイル
Image src, dst; イメージバッファ
ppm.open(argv[1]); ファイルオープン
ppm.init_image(src, Format::U8); イメージ読み込み
constexpr int scale_factor = 2;
TensorInfo dst_tensor_info( 入力テンソル情報
src.info()->dimension(0) / scale_factor,
src.info()->dimension(1) / scale_factor,
Format::U8);
- 8.
- 9.
サンプルコード:convolution (NEON)
PPMLoader ppm;ppmファイル
Image src, tmp, dst; イメージバッファ
ppm.open(argv[1]); ファイルオープン
ppm.init_image(src, Format::U8); イメージ読み込み
tmp.allocator()->init(*src.info()); 初期化
dst.allocator()->init(*src.info()); 初期化
NEConvolution3x3 conv3x3; 3x3 Convolution
NEConvolution5x5 conv5x5; 5x5 Convolution
- 10.
サンプルコード:convolution (NEON)
conv3x3.configure(&src, &tmp,コンフィギュレーション
gaussian3x3, 0, BorderMode::UNDEFINED);
conv5x5.configure(&tmp, &dst, コンフィギュレーション
gaussian5x5, 0, BorderMode::UNDEFINED);
src.allocator()->allocate(); メモリ割当て
tmp.allocator()->allocate(); メモリ割当て
dst.allocator()->allocate(); メモリ割当て
conv3x3.run(); 実行
conv5x5.run(); 実行
- 11.
- 12.
multithread(スレッド無し)
void CPPScheduler::multithread(ICPPKernel *kernel,const size_t split_dimension)
{
const Window &max_window = kernel->window();
const int num_iterations = max_window.num_iterations(split_dimension);
int num_threads = std::min(num_iterations, _num_threads);
if(!kernel->is_parallelisable() || 1 == num_threads)
{
kernel->run(max_window);
}
}
- 13.
multithread (スレッド有り)
for(int t= 0; t < num_threads; ++t)
{
Window win = max_window.split_window(split_dimension, t, num_threads);
win.set_thread_id(t);
win.set_num_threads(num_threads);
if(t != num_threads - 1)
{
_threads[t].start(kernel, win);
}
else
{
kernel->run(win);
}
}
- 14.
サンプルカーネル:NEScaleKernel
void NEScaleKernel::run(const Window&window)
{
ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this);
ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window);
ARM_COMPUTE_ERROR_ON(_func == nullptr);
(this->*_func)(window);
}
_func = &NEScaleKernel::scale_nearest;
_func = &NEScaleKernel::scale_bilinear;
_func = &NEScaleKernel::scale_area;
- 15.