Files
mlx/docs/build/doctrees/python/devices_and_streams.doctree

41 lines
9.8 KiB
Plaintext
Raw Normal View History

2024-01-17 17:15:29 -08:00
<EFBFBD><05>='<00>sphinx.addnodes<65><73>document<6E><74><EFBFBD>)<29><>}<7D>(<28> rawsource<63><65><00><>children<65>]<5D>(<28>docutils.nodes<65><73>target<65><74><EFBFBD>)<29><>}<7D>(h<05>.. _devices_and_streams:<3A>h]<5D><>
attributes<EFBFBD>}<7D>(<28>ids<64>]<5D><>classes<65>]<5D><>names<65>]<5D><>dupnames<65>]<5D><>backrefs<66>]<5D><>refid<69><64>devices-and-streams<6D>u<EFBFBD>tagname<6D>h
<EFBFBD>line<6E>K<01>parent<6E>h<03> _document<6E>h<03>source<63><65>C/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst<73>ubh <09>section<6F><6E><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>title<6C><65><EFBFBD>)<29><>}<7D>(h<05>Devices and Streams<6D>h]<5D>h <09>Text<78><74><EFBFBD><EFBFBD>Devices and Streams<6D><73><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h+h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh)h h&h!hh"h#hKubh<00>tabular_col_spec<65><63><EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>spec<65><63>\X{1}{2}\X{1}{2}<7D>uhh;h h&h!hh"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hNub<75>sphinx.ext.autosummary<72><79>autosummary_table<6C><65><EFBFBD>)<29><>}<7D>(h<05><>
Device
default_device()
set_default_device(device)
Stream
default_stream(device)
new_stream(device)
set_default_stream(stream)
<EFBFBD>h]<5D>h <09>table<6C><65><EFBFBD>)<29><>}<7D>(hhh]<5D>h <09>tgroup<75><70><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>colspec<65><63><EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>colwidth<74>K
uhhZh hWubh[)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>colwidth<74>KZuhhZh hWubh <09>tbody<64><79><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>row<6F><77><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>entry<72><79><EFBFBD>)<29><>}<7D>(hhh]<5D>h <09> paragraph<70><68><EFBFBD>)<29><>}<7D>(h<05>#:py:obj:`Device <mlx.core.Device>`\<5C>h]<5D>(h<00> pending_xref<65><66><EFBFBD>)<29><>}<7D>(h<05>":py:obj:`Device <mlx.core.Device>`<60>h]<5D>h <09>literal<61><6C><EFBFBD>)<29><>}<7D>(hh<>h]<5D>h0<68>Device<63><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>(<28>xref<65><66>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhh<>h h<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F><63>python/devices_and_streams<6D><73> refdomain<69>h<EFBFBD><68>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E><EFBFBD> py:module<6C><65>mlx.core<72><65>py:class<73>N<EFBFBD> reftarget<65><74>mlx.core.Device<63>uhh<>h"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hKh h<>ubh0h<06><><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh"h<>hKh h|ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh hwubh{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh h<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh hwubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhuh hrubhv)<29><>}<7D>(hhh]<5D>(h{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(h<05>8:py:obj:`default_device <mlx.core.default_device>`\ \(\)<29>h]<5D>(h<>)<29><>}<7D>(h<05>2:py:obj:`default_device <mlx.core.default_device>`<60>h]<5D>h<EFBFBD>)<29><>}<7D>(hh<>h]<5D>h0<68>default_device<63><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>(h<><68>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhh<>h h<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>h<EFBFBD><68> refdomain<69>h<EFBFBD><68>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>h<EFBFBD>h<EFBFBD>h<EFBFBD>Nh<4E><68>mlx.core.default_device<63>uhh<>h"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hKh h<>ubh0<68>()<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh"jhKh h<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh h<>ubh{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh jubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh h<>ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhuh hrubhv)<29><>}<7D>(hhh]<5D>(h{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(h<05>F:py:obj:`set_default_device <mlx.core.set_default_device>`\ \(device\)<29>h]<5D>(h<>)<29><>}<7D>(h<05>::py:obj:`set_default_device <mlx.core.set_default_device>`<60>h]<5D>h<EFBFBD>)<29><>}<7D>(hj6h]<5D>h0<68>set_default_device<63><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j8h!hh"NhNubah}<7D>(h]<5D>h]<5D>(h<><68>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhh<>h j4ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>h<EFBFBD><68> refdomain<69>jB<00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>h<EFBFBD>h<EFBFBD>h<EFBFBD>Nh<4E><68>mlx.core.set_default_device<63>uhh<>h"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hKh j0ubh0<68>(device)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j0h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh"jThKh j-ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j*ubh{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh jeubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j*ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhuh hrubhv)<29><>}<7D>(hhh]<5D>(h{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(h<05>#:py:obj:`Stream <mlx.core.Stream>`\<5C>h]<5D>(h<>)<29><>}<7D>(h<05>":py:obj:`Stream <mlx.core.Stream>`<60>h]<5D>h<EFBFBD>)<29><>}<7D>(hj<>h]<5D>h0<68>Stream<61><6D><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>(h<><68>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhh<>h j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>h<EFBFBD><68> refdomain<69>j<EFBFBD><00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>h<EFBFBD>h<EFBFBD>h<EFBFBD>Nh<4E><68>mlx.core.Stream<61>uhh<>h"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hKh j<>ubh0h<06><><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh"j<>hKh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j}ubh{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j}ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhuh hrubhv)<29><>}<7D>(hhh]<5D>(h{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(h<05>>:py:obj:`default_stream <mlx.core.default_stream>`\ \(device\)<29>h]<5D>(h<>)<29><>}<7D>(h<05>2:py:obj:`default_stream <mlx.core.default_stream>`<60>h]<5D>h<EFBFBD>)<29><>}<7D>(hj<>h]<5D>h0<68>default_stream<61><6D><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>(h<><68>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhh<>h j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>h<EFBFBD><68> refdomain<69>j<EFBFBD><00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>h<EFBFBD>h<EFBFBD>h<EFBFBD>Nh<4E><68>mlx.core.default_stream<61>uhh<>h"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hKh j<>ubh0<68>(device)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh"j<>hKh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j<>ubh{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh j
ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j<>ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhuh hrubhv)<29><>}<7D>(hhh]<5D>(h{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(h<05>6:py:obj:`new_stream <mlx.core.new_stream>`\ \(device\)<29>h]<5D>(h<>)<29><>}<7D>(h<05>*:py:obj:`new_stream <mlx.core.new_stream>`<60>h]<5D>h<EFBFBD>)<29><>}<7D>(hj.h]<5D>h0<68>
new_stream<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j0h!hh"NhNubah}<7D>(h]<5D>h]<5D>(h<><68>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhh<>h j,ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>h<EFBFBD><68> refdomain<69>j:<00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>h<EFBFBD>h<EFBFBD>h<EFBFBD>Nh<4E><68>mlx.core.new_stream<61>uhh<>h"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hKh j(ubh0<68>(device)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j(h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh"jLhKh j%ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j"ubh{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh j]ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh j"ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhuh hrubhv)<29><>}<7D>(hhh]<5D>(h{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(h<05>F:py:obj:`set_default_stream <mlx.core.set_default_stream>`\ \(stream\)<29>h]<5D>(h<>)<29><>}<7D>(h<05>::py:obj:`set_default_stream <mlx.core.set_default_stream>`<60>h]<5D>h<EFBFBD>)<29><>}<7D>(hj<>h]<5D>h0<68>set_default_stream<61><6D><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>(h<><68>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhh<>h jubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>h<EFBFBD><68> refdomain<69>j<EFBFBD><00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>h<EFBFBD>h<EFBFBD>h<EFBFBD>Nh<4E><68>mlx.core.set_default_stream<61>uhh<>h"<22>T/Users/awnihannun/repos/mlx/docs/src/python/devices_and_streams.rst:17:<autosummary><3E>hKh j{ubh0<68>(stream)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j{h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh"j<>hKh jxubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh juubh{)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhzh juubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhuh hrubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhph hWubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>cols<6C>KuhhUh hRubah}<7D>(h]<5D>h]<5D><>autosummary longtable<6C>ah]<5D>h]<5D>h]<5D>uhhPh hLubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><> xml:space<63><65>preserve<76>uhhJh h&h!hh"hHhNubhI<68>autosummary_toc<6F><63><EFBFBD>)<29><>}<7D>(hhh]<5D>h<00>toctree<65><65><EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><> includefiles<65>]<5D>(<28>#python/_autosummary/mlx.core.Device<63><65>+python/_autosummary/mlx.core.default_device<63><65>/python/_autosummary/mlx.core.set_default_device<63><65>#python/_autosummary/mlx.core.Stream<61><6D>+python/_autosummary/mlx.core.default_stream<61><6D>'python/_autosummary/mlx.core.new_stream<61><6D>/python/_autosummary/mlx.core.set_default_stream<61>e<EFBFBD>entries<65>]<5D>(Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>e<EFBFBD>maxdepth<74>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD>glob<6F>N<EFBFBD>caption<6F>N<EFBFBD>
rawentries<EFBFBD>]<5D>uhj<>h j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>j<EFBFBD>j<>uhj<>h h&h!hh"hHhNubeh}<7D>(h]<5D>(h<1D>id1<64>eh]<5D>h]<5D>(<28>devices and streams<6D><73>devices_and_streams<6D>eh]<5D>h]<5D>uhh$h hh!hh"h#hK<04>expect_referenced_by_name<6D>}<7D>jh s<>expect_referenced_by_id<69>}<7D>hh subeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>source<63>h#uhh<01>current_source<63>N<EFBFBD> current_line<6E>N<EFBFBD>settings<67><73>docutils.frontend<6E><64>Values<65><73><EFBFBD>)<29><>}<7D>(h)N<> generator<6F>N<EFBFBD> datestamp<6D>N<EFBFBD> source_link<6E>N<EFBFBD>
source_url<EFBFBD>N<EFBFBD> toc_backlinks<6B>hz<68>footnote_backlinks<6B>K<01> sectnum_xform<72>K<01>strip_comments<74>N<EFBFBD>strip_elements_with_classes<65>N<EFBFBD> strip_classes<65>N<EFBFBD> report_level<65>K<02>
halt_level<EFBFBD>K<05>exit_status_level<65>K<05>debug<75>N<EFBFBD>warning_stream<61>N<EFBFBD> traceback<63><6B><EFBFBD>input_encoding<6E><67> utf-8-sig<69><67>input_encoding_error_handler<65><72>strict<63><74>output_encoding<6E><67>utf-8<><38>output_encoding_error_handler<65>j@<00>error_encoding<6E><67>utf-8<><38>error_encoding_error_handler<65><72>backslashreplace<63><65> language_code<64><65>en<65><6E>record_dependencies<65>N<EFBFBD>config<69>N<EFBFBD> id_prefix<69>h<06>auto_id_prefix<69><78>id<69><64> dump_settings<67>N<EFBFBD>dump_internals<6C>N<EFBFBD>dump_transforms<6D>N<EFBFBD>dump_pseudo_xml<6D>N<EFBFBD>expose_internals<6C>N<EFBFBD>strict_visitor<6F>N<EFBFBD>_disable_config<69>N<EFBFBD>_source<63>h#<23> _destination<6F>N<EFBFBD> _config_files<65>]<5D><>file_insertion_enabled<65><64><EFBFBD> raw_enabled<65>K<01>line_length_limit<69>M'<27>pep_references<65>N<EFBFBD> pep_base_url<72><6C>https://peps.python.org/<2F><>pep_file_url_template<74><65>pep-%04d<34><64>rfc_references<65>N<EFBFBD> rfc_base_url<72><6C>&https://datatracker.ietf.org/doc/html/<2F><> tab_width<74>K<08>trim_footnote_reference_space<63><65><EFBFBD>syntax_highlight<68><74>long<6E><67> smart_quotes<65><73><EFBFBD>smartquotes_locales<65>]<5D><>character_level_inline_markup<75><70><EFBFBD>doctitle_xform<72><6D><EFBFBD> docinfo_xform<72>K<01>sectsubtitle_xform<72><6D><EFBFBD> image_loading<6E><67>link<6E><6B>embed_stylesheet<65><74><EFBFBD>cloak_email_addresses<65><73><EFBFBD>section_self_link<6E><6B><EFBFBD>env<6E>Nub<75>reporter<65>N<EFBFBD>indirect_targets<74>]<5D><>substitution_defs<66>}<7D><>substitution_names<65>}<7D><>refnames<65>}<7D><>refids<64>}<7D>h]<5D>h as<61>nameids<64>}<7D>(jhjju<> nametypes<65>}<7D>(j<00>j<00>uh}<7D>(hh&jh&u<> footnote_refs<66>}<7D><> citation_refs<66>}<7D><> autofootnotes<65>]<5D><>autofootnote_refs<66>]<5D><>symbol_footnotes<65>]<5D><>symbol_footnote_refs<66>]<5D><> footnotes<65>]<5D><> citations<6E>]<5D><>autofootnote_start<72>K<01>symbol_footnote_start<72>K<00>
id_counter<EFBFBD><EFBFBD> collections<6E><73>Counter<65><72><EFBFBD>}<7D>jNKs<><73>R<EFBFBD><52>parse_messages<65>]<5D><>transform_messages<65>]<5D>h <09>system_message<67><65><EFBFBD>)<29><>}<7D>(hhh]<5D>h<EFBFBD>)<29><>}<7D>(hhh]<5D>h0<68>9Hyperlink target "devices-and-streams" is not referenced.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>h j<>sbah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>level<65>K<01>type<70><65>INFO<46><4F>source<63>h#<23>line<6E>Kuhj<>uba<62> transformer<65>N<EFBFBD> include_log<6F>]<5D><>
decoration<EFBFBD>Nh!hub.