4. Blaze: Different kinds of Arrays
Indexable
Record Type
Primitive Type
NDTable
Deferred
Concrete
NDArray
Deferred
Concrete
5. Blaze Deferred Arrays
• Symbolic objects which build a graph
• Represents deferred computation
+"
A + B*C
Usually what you have when
you have a Blaze Array
A"
*"
B"
C"
6. Deferred allows handling large arrays
Can be handled out-ofcore using chunks to
stream through memory.
7. Blaze Concrete Array
Data Descriptor
Where are the bytes?
DataShape
URL
URL
URL
URL
URL
Indexes
What do the bytes mean?
Extensible Type System
which includes shape
MetaData
Dictionary
Labels, provenance, etc.
15. Advanced Types
Parametrized Types
type SquareMatrix T = N, N, T
type Point = {
x : int;
y : int
}
Alias Types
!
type IntMatrix N = N, N, int32
type Space = {
a: Point;
b: Point
}
!
5, 10, Space
17. Execution Model
• Graphs dispatch to specialized library code
that is “registered with the system” based on
type and meta-data of array (blaze Modules)
• Many operations can be compiled with LLVM
to machine-code
• BLIR (simple typed expression syntax)
• Numba (Python compiler)