SlideShare a Scribd company logo
1 of 33
Download to read offline
ChainerX
and How to Take Part
Hiroyuki Vincent Yamazaki, @hvy @ Preferred Networks.
Mar. 30, 2019.
Chainer Meetup #09 @ Preferred Networks.
What makes
a modern deep learning framework?
• Speed
• Fast trial-and-error
• Fast training and inference
• Environment Support
• Quick adoption of new hardwares/environments
• Quick Deployment
• Quick application of research outcome
Chainer
• Speed
• Fast trial-and-error
• Fast training and inference
• Environment Support
• Quick adoption of new hardwares/environments
• Quick Deployment
• Quick application of research outcome
Chainer
ChainerX
• how it makes Chainer a modern deep learning framework
• how it started and where it is heading
• how to contribute to it
This talk is about ChainerX and...
• understand ChainerX and some of its internals
• are ready to try ChainerX
• be curious to modify it to your needs
You hopefully after this talk...
What is ChainerX?
A NumPy-like ndarray library with autograd,
built from scratch with experiences from Chainer
• Subproject of Chainer started in late 2017
• With both internal and external Chainer developers
• Merged into master as of v6.0.0b1 and will be included in v6
https://github.com/chainer/chainer/tree/master/chainerx
https://github.com/chainer/chainer/tree/master/chainerx_cc
How it started
@beam2d @niboshi @asi1024 @hvy @sonots @takagi
import chainerx as chx
# Array creation, chx.ndarray, similar to NumPy
x = chx.ones((2, 3), dtype=chx.float32, device='native')
# Flag to record computational graph
x.require_grad()
# Define-by-run/eager forward pass, again similar to NumPy
y = chx.exp(x + 1).sum()
# Backpropagation
chx.backward(y)
# Computed gradient is also a chx.ndarray
gx = x.grad
chainerx.add
chainerx.amax
chainerx.arange
chainerx.argmax
chainerx.array
chainerx.asanyarray
chainerx.asarray
chainerx.ascontiguousarray
chainerx.average_pool
chainerx.batch_norm
chainerx.broadcast_to
chainerx.clip
chainerx.concatenate
chainerx.conv
chainerx.conv_transpose
chainerx.copy
chainerx.diag
chainerx.diagflat
chainerx.divide
chainerx.dot
chainerx.empty
chainerx.empty_like
chainerx.equal
chainerx.exp
chainerx.eye
chainerx.fixed_batch_norm
chainerx.floor_divide
chainerx.frombuffer
chainerx.fromfile
chainerx.fromfunction
chainerx.fromiter
chainerx.fromstring
chainerx.full
chainerx.full_like
chainerx.greater
chainerx.greater_equal
chainerx.hstack
chainerx.identity
chainerx.isfinite
chainerx.isinf
chainerx.isnan
chainerx.less
chainerx.less_equal
chainerx.linear
chainerx.linspace
chainerx.loadtxt
chainerx.log
chainerx.log_softmax
chainerx.logical_not
chainerx.logsumexp
chainerx.max
chainerx.max_pool
chainerx.maximum
chainerx.minimum
chainerx.multiply
chainerx.ndarray
chainerx.negative
chainerx.not_equal
chainerx.ones
chainerx.ones_like
chainerx.ravel
chainerx.relu
chainerx.reshape
chainerx.sigmoid
chainerx.split
chainerx.sqrt
chainerx.square
chainerx.squeeze
chainerx.stack
chainerx.subtract
chainerx.sum
chainerx.take
chainerx.tanh
chainerx.to_numpy
chainerx.transpose
chainerx.true_divide
chainerx.vstack
chainerx.zeros
chainerx.zeros_like
chainerx.activation
chainerx.creation
chainerx.random
chainerx.manipulation
chainerx.math
chainerx.dtype
chainerx.bool
chainerx.bool_
chainerx.float
chainerx.float16
chainerx.float32
chainerx.float64
chainerx.int
chainerx.int16
chainerx.int32
chainerx.int64
chainerx.int8
chainerx.uint8
chainerx.all_dtypes
chainerx.Context
chainerx.ContextScope
chainerx.Backend
chainerx.BackpropId
chainerx.BackpropScope
chainerx.Device
chainerx.DeviceScope
chainerx.ForceBackpropMode
chainerx.NoBackpropMode
chainerx.grad
chainerx.backprop_scope
chainerx.backward
chainerx.check_backward
chainerx.check_double_backward
chainerx.context_scope
chainerx.force_backprop_mode
chainerx.get_backend
chainerx.get_default_context
chainerx.get_default_device
chainerx.get_device
chainerx.is_available
chainerx.is_backprop_required
chainerx.no_backprop_mode
chainerx.set_default_context
chainerx.using_device
chainerx.newaxis
…
Why ChainerX?
Speed, environment support and quick deployment
• Written in C++
• Speed
• No Python runtime
required for deployment
• Python binding on top
• Lightweight
• 1-to-1 C++ mappings
• Pluggable backends
• Extensible to new
hardwares/environments
Autograd
Backpropable ndarray
CUDA
Backend/
Device
Native
Backend/
Device
Python binding
Backend/Device interface
Custom
Backend/
Device
...
#include "chainerx.h"
namespace chx = chainerx;
chx::Array x = chx::Ones(
{2, 3}, chx::Dtype::kFloat32,
chx::GetDevice("native"));
x.RequireGrad();
chx::Array y = chx::Exp(x + 1).Sum();
chx::Backward(y);
chx::Array gy = *x.GetGrad();
C++ API
import chainerx as chx
x = chx.ones(
(2, 3), dtype=chx.float32,
device='native')
x.require_grad()
y = chx.exp(x + 1).sum()
chx.backward(y)
gx = x.grad
Python API
ChainerX internals
Explaining basic types and functions
// Call a routine to create a graph.
Internally uses chx::BackwardBuilder to do so
chx::Array y =
chx::Conv(x, w, b, {1, 1}, {1, 1});
Array, x
ArrayBody
Array, w
ArrayBody
Array, b
ArrayBody
ArrayNode ArrayNode ArrayNode
OpNode, Conv
Array, y
ArrayBody
ArrayNode
chainerx namespace omitted for clarity
// Flag to record computational graph
x.RequireGrad();
w.RequireGrad();
b.RequireGrad();
// Create input ndarrays
chx::Array x = ...
chx::Array w = ...
chx::Array b = ...
chainerx::Array (chainerx::ArrayBody)
• Core data type in ChainerX, an ndarray with autograd
• Has ndarray properties such as
• pointer to allocated data,
shape, dtype, strides
• Associated with a single device
• Data resides on e.g. "native" or "cuda:2"
• Holds references to its
• gradients, also chainerx::Arrays
• nodes in the computational graphs
Array, x
device
ArrayBody
data
Array, gx
ArrayNode
ArrayBody
chainerx::ArrayNode
• A node representing an
array in the
computational graph
• Owned by
chainerx::ArrayBody
Array, x
ArrayBody
Array, w
ArrayBody
Array, b
ArrayBody
ArrayNode ArrayNode ArrayNode
OpNode, Conv
Array, y
ArrayBody
ArrayNode
chainerx::OpNode
• A node representing an
operation in the
computational graph
• Referenced by
chainerx::ArrayNode
Array, x
ArrayBody
Array, w
ArrayBody
Array, b
ArrayBody
ArrayNode ArrayNode ArrayNode
OpNode, Conv
Array, y
ArrayBody
ArrayNode
• An array is constructed by specifying the allocating device
chainerx::Device& gpu = chainerx::GetDevice("cuda:0");
chainerx::Array x =
chainerx::Ones({2, 3}, chainerx::Dtype::kFloat32, gpu);
• A device defines
• how memory is allocated and freed
• chainerx::Device::Allocate
• operations on data
• chainerx::Device::{
Fill,Arange,Add,Subtract,Multiply,Divide,Sum,Dot,...}
chainerx::Device (1/2)
chainerx::Device (2/2)
• chainerx::Device is an interface
• Concrete implementations provided by ChainerX
• chainerx::native::NativeDevice
• chainerx::cuda::CudaDevice
• Can be implemented for other devices and dynamically loaded as
shared libraries
Routines (1/2)
• Backpropable autograd operations on chainerx::Arrays
• chainerx::{
Add,Subtract,Multiply,Divide,
Sum,Transpose,Reshape,Dot,
Conv,BatchNorm,MaxPool,...}
Routines (2/2)
• Defines forward and backward
logic using
chainerx::BackwardBuilder
• Delegates actual computations
to the device methods
• chainerx::Dot calls
chainerx::Device::Dot
Array Dot(const Array& a, const Array& b, Dtype dtype) {
int64_t m = a.shape()[0];
int64_t k = a.shape()[1];
int64_t n = b.shape()[1];
Array out = Empty({m, n}, dtype, a.device());
{
NoBackpropModeScope scope{};
a.device().Dot(a, b, out);
}
{
BackwardBuilder bb{"dot", {a, b}, out};
if (BackwardBuilder::Target bt = bb.CreateTarget(0)) {
bt.Define([b_tok = bb.RetainInput(1), a_dtype = a.dtype()](BackwardContext& bctx) {
const Array& b = bctx.GetRetainedInput(b_tok);
bctx.input_grad() = Dot(*bctx.output_grad(), b.Transpose(), a_dtype);
});
}
if (BackwardBuilder::Target bt = bb.CreateTarget(1)) {
bt.Define([a_tok = bb.RetainInput(0), b_dtype = b.dtype()](BackwardContext& bctx) {
const Array& a = bctx.GetRetainedInput(a_matrix_tok);
bctx.input_grad() = Dot(a.Transpose(), *bctx.output_grad(), b_dtype);
});
}
bb.Finalize();
}
return out;
}
Chainer integration
How ChainerX can be used from Chainer
Architecture
Variable and functions APIs
Autograd
Backpropable ndarray
CUDA
Backend/
Device
Native
Backend/
Device
Python binding
Backend/Device interface
Custom
Backend/
Device
...
Training and model APIs
CuPy
Autograd
NumPy
• Various APIs in Chainer
v6 work with and utilize
chainerx
• Variable and
FunctionNode
delegates autograd
computations to ChainerX
Chainer
import chainer as ch
import cupy as cp
class ResNet50(ch.Chain):
…
model = ResNet50()
model.to_device(0)
arr = cp.array(...)
x = ch.Variable(arr)
y = model(x)
loss = …
loss.backward()
Autograd
Backpropable ndarray
CUDA
Backend/
Device
Native
Backend/
Device
Python binding
Backend/Device interface
Custom
Backend/
Device
...
Training and model APIs
CuPy
Variable and functions APIs
CuPy
Autograd
NumPy
Chainer
on ChainerX
import chainer as ch
import chainerx as chx
class ResNet50(ch.Chain):
…
model = ResNet50()
model.to_device('cuda:0')
arr = chx.array(...)
x = ch.Variable(arr)
y = model(x)
loss = …
loss.backward()
Training and model APIs
CuPy
Variable and functions APIs
CuPy
Autograd
NumPy
Autograd
Backpropable ndarray
CUDA
Backend/
Device
Native
Backend/
Device
Python binding
Backend/Device interface
Custom
Backend/
Device
...
How to take part in developing ChainerX
Contribution guide explained
It’s all documented
• A section in the Chainer documentation
https://docs.chainer.org/en/latest/chainerx/index.html
• On GitHub
• Look for issues/PRs labeled
• ChainerX needs to support more routines
• A list of unimplemented routines
https://github.com/chainer/chainer/issues/6423
contribution-welcomeChainerX
Future of ChainerX
Future roadmap
• Integrate into Chainer
• Wider range of supported routines
• Dynamic device operation registration
• Concrete third party backends
• Stable C++ interface
• Wider coverage of “compiled models”
Summary
ChainerX is implemented in C++ with far less host-side
overhead, made accessible to Python-free deployments and
allows third parties to implement backends and devices for
hardware/environment support
Taking Chainer to the next level
by being accessible via Python and used by Chainer
and you can take part of ChainerX on GitHub
Contributions, ideas and discussions are welcome
• Follow @ChainerOfficial on Twitter
• Join chainer on Slack
• Job application to https://www.preferred-networks.jp/en/jobs
We are hiring
Additional resources
• ChainerX documentation
• ChainerX Product Backlog
• ChainerX examples (MLP, ResNet50)
• ChainerX Python bindings
• ChainerX C++ Backpropagation

More Related Content

What's hot

Introduction to Chainer 11 may,2018
Introduction to Chainer 11 may,2018Introduction to Chainer 11 may,2018
Introduction to Chainer 11 may,2018Preferred Networks
 
PyTorch crash course
PyTorch crash coursePyTorch crash course
PyTorch crash courseNader Karimi
 
Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+Seiya Tokui
 
Chainer v2 and future dev plan
Chainer v2 and future dev planChainer v2 and future dev plan
Chainer v2 and future dev planSeiya Tokui
 
JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐
JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐
JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐Preferred Networks
 
CuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPUCuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPUShohei Hido
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerHitoshi Sato
 
Chainer ui v0.3 and imagereport
Chainer ui v0.3 and imagereportChainer ui v0.3 and imagereport
Chainer ui v0.3 and imagereportPreferred Networks
 
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」Tsukasa Sugiura
 
IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」Preferred Networks
 
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...ryuz88
 
kubectl internal / Kubernetes Internal #8
kubectl internal / Kubernetes Internal #8kubectl internal / Kubernetes Internal #8
kubectl internal / Kubernetes Internal #8Preferred Networks
 
Intro to the Distributed Version of TensorFlow
Intro to the Distributed Version of TensorFlowIntro to the Distributed Version of TensorFlow
Intro to the Distributed Version of TensorFlowAltoros
 
Demystifying DataFrame and Dataset
Demystifying DataFrame and DatasetDemystifying DataFrame and Dataset
Demystifying DataFrame and DatasetKazuaki Ishizaki
 
Raul sena - Apresentação Analiticsemtudo - Scientific Applications using GPU
Raul sena - Apresentação Analiticsemtudo - Scientific Applications using GPURaul sena - Apresentação Analiticsemtudo - Scientific Applications using GPU
Raul sena - Apresentação Analiticsemtudo - Scientific Applications using GPUEduardo Gaspar
 
PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...
PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...
PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...Preferred Networks
 
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기 Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기 Mario Cho
 
Overview of Chainer and Its Features
Overview of Chainer and Its FeaturesOverview of Chainer and Its Features
Overview of Chainer and Its FeaturesSeiya Tokui
 
PyTorch Tutorial for NTU Machine Learing Course 2017
PyTorch Tutorial for NTU Machine Learing Course 2017PyTorch Tutorial for NTU Machine Learing Course 2017
PyTorch Tutorial for NTU Machine Learing Course 2017Yu-Hsun (lymanblue) Lin
 

What's hot (20)

Chainer v3
Chainer v3Chainer v3
Chainer v3
 
Introduction to Chainer 11 may,2018
Introduction to Chainer 11 may,2018Introduction to Chainer 11 may,2018
Introduction to Chainer 11 may,2018
 
PyTorch crash course
PyTorch crash coursePyTorch crash course
PyTorch crash course
 
Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+
 
Chainer v2 and future dev plan
Chainer v2 and future dev planChainer v2 and future dev plan
Chainer v2 and future dev plan
 
JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐
JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐
JAWS-UG HPC #17 - Supercomputing'19 参加報告 - PFN 福田圭祐
 
CuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPUCuPy: A NumPy-compatible Library for GPU
CuPy: A NumPy-compatible Library for GPU
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC Container
 
Chainer ui v0.3 and imagereport
Chainer ui v0.3 and imagereportChainer ui v0.3 and imagereport
Chainer ui v0.3 and imagereport
 
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
第38回 名古屋CV・PRML勉強会 「Kinect v2本の紹介とPCLの概要」
 
IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」
 
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
Fast and Light-weight Binarized Neural Network Implemented in an FPGA using L...
 
kubectl internal / Kubernetes Internal #8
kubectl internal / Kubernetes Internal #8kubectl internal / Kubernetes Internal #8
kubectl internal / Kubernetes Internal #8
 
Intro to the Distributed Version of TensorFlow
Intro to the Distributed Version of TensorFlowIntro to the Distributed Version of TensorFlow
Intro to the Distributed Version of TensorFlow
 
Demystifying DataFrame and Dataset
Demystifying DataFrame and DatasetDemystifying DataFrame and Dataset
Demystifying DataFrame and Dataset
 
Raul sena - Apresentação Analiticsemtudo - Scientific Applications using GPU
Raul sena - Apresentação Analiticsemtudo - Scientific Applications using GPURaul sena - Apresentação Analiticsemtudo - Scientific Applications using GPU
Raul sena - Apresentação Analiticsemtudo - Scientific Applications using GPU
 
PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...
PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...
PFN Summer Internship 2019 / Kenshin Abe: Extension of Chainer-Chemistry for ...
 
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기 Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
Koss Lab 세미나 오픈소스 인공지능(AI) 프레임웍파헤치기
 
Overview of Chainer and Its Features
Overview of Chainer and Its FeaturesOverview of Chainer and Its Features
Overview of Chainer and Its Features
 
PyTorch Tutorial for NTU Machine Learing Course 2017
PyTorch Tutorial for NTU Machine Learing Course 2017PyTorch Tutorial for NTU Machine Learing Course 2017
PyTorch Tutorial for NTU Machine Learing Course 2017
 

Similar to ChainerX and How to Take Part

4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)PROIDEA
 
constructorsfjy5ediykEASFul;IUWORHusi;gfb.pptx
constructorsfjy5ediykEASFul;IUWORHusi;gfb.pptxconstructorsfjy5ediykEASFul;IUWORHusi;gfb.pptx
constructorsfjy5ediykEASFul;IUWORHusi;gfb.pptxAshrithaRokkam
 
Pytroch-basic.pptx
Pytroch-basic.pptxPytroch-basic.pptx
Pytroch-basic.pptxrebeen4
 
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...GeeksLab Odessa
 
Tips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native codeTips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native codeKenneth Geisshirt
 
Numba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPyNumba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPyTravis Oliphant
 
Options and trade offs for parallelism and concurrency in Modern C++
Options and trade offs for parallelism and concurrency in Modern C++Options and trade offs for parallelism and concurrency in Modern C++
Options and trade offs for parallelism and concurrency in Modern C++Satalia
 
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...Databricks
 
Machine learning with py torch
Machine learning with py torchMachine learning with py torch
Machine learning with py torchRiza Fahmi
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiDatabricks
 
Cluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in CCluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in CSteffen Wenz
 
Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)Dina Goldshtein
 
Does static analysis need machine learning?
Does static analysis need machine learning?Does static analysis need machine learning?
Does static analysis need machine learning?Andrey Karpov
 
Python高级编程(二)
Python高级编程(二)Python高级编程(二)
Python高级编程(二)Qiangning Hong
 

Similar to ChainerX and How to Take Part (20)

4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
 
constructorsfjy5ediykEASFul;IUWORHusi;gfb.pptx
constructorsfjy5ediykEASFul;IUWORHusi;gfb.pptxconstructorsfjy5ediykEASFul;IUWORHusi;gfb.pptx
constructorsfjy5ediykEASFul;IUWORHusi;gfb.pptx
 
Blockchain - a simple implementation
Blockchain - a simple implementationBlockchain - a simple implementation
Blockchain - a simple implementation
 
Node.js extensions in C++
Node.js extensions in C++Node.js extensions in C++
Node.js extensions in C++
 
Pytroch-basic.pptx
Pytroch-basic.pptxPytroch-basic.pptx
Pytroch-basic.pptx
 
C++ Advanced Features
C++ Advanced FeaturesC++ Advanced Features
C++ Advanced Features
 
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
 
Tips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native codeTips and tricks for building high performance android apps using native code
Tips and tricks for building high performance android apps using native code
 
Numba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPyNumba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPy
 
C++ Advanced Features
C++ Advanced FeaturesC++ Advanced Features
C++ Advanced Features
 
Options and trade offs for parallelism and concurrency in Modern C++
Options and trade offs for parallelism and concurrency in Modern C++Options and trade offs for parallelism and concurrency in Modern C++
Options and trade offs for parallelism and concurrency in Modern C++
 
R and cpp
R and cppR and cpp
R and cpp
 
201801 CSE240 Lecture 13
201801 CSE240 Lecture 13201801 CSE240 Lecture 13
201801 CSE240 Lecture 13
 
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & PyTorch with B...
 
Machine learning with py torch
Machine learning with py torchMachine learning with py torch
Machine learning with py torch
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
 
Cluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in CCluj.py Meetup: Extending Python in C
Cluj.py Meetup: Extending Python in C
 
Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)Look Mommy, No GC! (TechDays NL 2017)
Look Mommy, No GC! (TechDays NL 2017)
 
Does static analysis need machine learning?
Does static analysis need machine learning?Does static analysis need machine learning?
Does static analysis need machine learning?
 
Python高级编程(二)
Python高级编程(二)Python高级编程(二)
Python高级编程(二)
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

ChainerX and How to Take Part