More Related Content
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17) PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例 PDF
PDF
ARM CPUにおけるSIMDを用いた高速計算入門 PDF
不揮発メモリ(NVDIMM)とLinuxの対応動向について ODP
Comparison between OCFS2 and GFS2 PDF
twlkh-linux-vsyscall-and-vdso ODP
Continguous Memory Allocator in the Linux Kernel What's hot
PDF
ARM Trusted FirmwareのBL31を単体で使う! PPTX
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah PPTX
Static partitioning virtualization on RISC-V PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38) PDF
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware PDF
PDF
PDF
PDF
Hopper アーキテクチャで、変わること、変わらないこと PDF
PDF
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File) PPTX
PDF
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方 PDF
PDF
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management) PDF
PPTX
PDF
分散ストレージソフトウェアCeph・アーキテクチャー概要 PDF
PDF
Viewers also liked
PDF
In the DOM, no one will hear you scream PDF
フェーズI/IIに置けるベイジアン・アダプティブ・メソッド PPTX
Alejandro Fernandez vs Luis Miguel PPTX
Wasabi waiter game - Gamification in recruitment - Manu Melwin Joy PPTX
Immunisation against bacteria PDF
PDF
A deep dive into Drupal 8 routing PDF
Groeispurt voor bvba kunstenaar Koen Vanmechelen PDF
マイクロソフトが創る未来 医療編 20170401 PDF
グローバル理工人材のための今日から使える検索テクニック ―もう日本語でググるのはやめよう PDF
PPTX
Elixir-Conf-Japan-2017-session-ohr486 PPT
Critiques of Community Forestry PDF
Marketing's important. But marketers often aren't. DOCX
Biases in military history PPTX
Mr. Nitin bassi IEWP @ 2nd India-EU Water Forum @ World Sustainable Developme... PDF
Frank Michael encore un peu plus riche PPTX
A Building Framework for the All Renewable Energy Future PDF
Experience WOW. A new benchmark in MDP / EDP PPTX
Tercera Trobada #Xatac5a Tarragona Similar to ARM Compute Library
PDF
1072: アプリケーション開発を加速するCUDAライブラリ PDF
GPU と PYTHON と、それから最近の NVIDIA KEY
PPTX
CMake multiplatform build-tool PDF
PPTX
PPTX
PDF
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築 PDF
PDF
PDF
【A-1】AIを支えるGPUコンピューティングの今 PDF
20170823【GWゼミ #2】AWS Lambda上でOpenCVを使った画像処理 PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成 PDF
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10) PDF
PDF
PDF
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎 DOC
GPGPUによるパーソナルスーパーコンピュータの可能性 KEY
PPTX
2012 1203-researchers-cafe More from Mr. Vengineer
PDF
XilinxのxsimでSoftware Driven Verification.pdf PDF
TensorFlow Lite Delegateとは? PDF
PDF
Google Edge TPUで TensorFlow Liteを使った時に 何をやっているのかを妄想してみる 2 「エッジAIモダン計測制御の世界」オ... PDF
VerilatorとSystemCでSoftware Driven Verification PDF
TensorFlow XLA 「XLAとは、から、最近の利用事例について」 PDF
PDF
Bridge TensorFlow to run on Intel nGraph backends (v0.4) PDF
PDF
TensorFlow local Python XLA client PDF
Cloud Deep Learning Chips Training & Inference PDF
PDF
Pixel Visual Core device driver source code analysis PDF
PDF
Bridge TensorFlow to run on Intel nGraph backends (v0.5) PDF
Facebook Glow Compiler のソースコードをグダグダ語る会 PDF
Cloud TPU Driver API ソースコード解析 PDF
Tensorflow dynamically loadable XLA plugin ソースコード解析 PDF
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.