Skip to content

Commit f8ab357

Browse files
author
github-actions[doc-deploy-bot]
committed
Docs for pull request 1889
1 parent 889d5e2 commit f8ab357

File tree

5 files changed

+18
-92
lines changed

5 files changed

+18
-92
lines changed

pulls/1889/_modules/dpctl/_sycl_timer.html

Lines changed: 12 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -856,44 +856,6 @@ <h1>Source code for dpctl._sycl_timer</h1><div class="highlight"><pre>
856856
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_device_dt</span>
857857

858858

859-
<span class="k">class</span> <span class="nc">BaseDeviceTimer</span><span class="p">:</span>
860-
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;queue&quot;</span><span class="p">]</span>
861-
862-
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sycl_queue</span><span class="p">):</span>
863-
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sycl_queue</span><span class="p">,</span> <span class="n">SyclQueue</span><span class="p">):</span>
864-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Expected type SyclQueue, got </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sycl_queue</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
865-
<span class="bp">self</span><span class="o">.</span><span class="n">queue</span> <span class="o">=</span> <span class="n">sycl_queue</span>
866-
867-
868-
<span class="k">class</span> <span class="nc">QueueBarrierDeviceTimer</span><span class="p">(</span><span class="n">BaseDeviceTimer</span><span class="p">):</span>
869-
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">[]</span>
870-
871-
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sycl_queue</span><span class="p">):</span>
872-
<span class="nb">super</span><span class="p">(</span><span class="n">QueueBarrierDeviceTimer</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">sycl_queue</span><span class="p">)</span>
873-
874-
<span class="k">def</span> <span class="nf">get_event</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
875-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">queue</span><span class="o">.</span><span class="n">submit_barrier</span><span class="p">()</span>
876-
877-
878-
<span class="k">class</span> <span class="nc">OrderManagerDeviceTimer</span><span class="p">(</span><span class="n">BaseDeviceTimer</span><span class="p">):</span>
879-
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;_order_manager&quot;</span><span class="p">,</span> <span class="s2">&quot;_submit_empty_task_fn&quot;</span><span class="p">]</span>
880-
881-
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sycl_queue</span><span class="p">):</span>
882-
<span class="kn">import</span> <span class="nn">dpctl.utils._seq_order_keeper</span> <span class="k">as</span> <span class="nn">s_ok</span>
883-
<span class="kn">from</span> <span class="nn">dpctl.utils</span> <span class="kn">import</span> <span class="n">SequentialOrderManager</span> <span class="k">as</span> <span class="n">seq_om</span>
884-
885-
<span class="nb">super</span><span class="p">(</span><span class="n">OrderManagerDeviceTimer</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">sycl_queue</span><span class="p">)</span>
886-
<span class="bp">self</span><span class="o">.</span><span class="n">_order_manager</span> <span class="o">=</span> <span class="n">seq_om</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">queue</span><span class="p">]</span>
887-
<span class="bp">self</span><span class="o">.</span><span class="n">_submit_empty_task_fn</span> <span class="o">=</span> <span class="n">s_ok</span><span class="o">.</span><span class="n">_submit_empty_task</span>
888-
889-
<span class="k">def</span> <span class="nf">get_event</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
890-
<span class="n">ev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_submit_empty_task_fn</span><span class="p">(</span>
891-
<span class="n">sycl_queue</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">queue</span><span class="p">,</span> <span class="n">depends</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_order_manager</span><span class="o">.</span><span class="n">submitted_events</span>
892-
<span class="p">)</span>
893-
<span class="bp">self</span><span class="o">.</span><span class="n">_order_manager</span><span class="o">.</span><span class="n">add_event_pair</span><span class="p">(</span><span class="n">ev</span><span class="p">,</span> <span class="n">ev</span><span class="p">)</span>
894-
<span class="k">return</span> <span class="n">ev</span>
895-
896-
897859
<div class="viewcode-block" id="SyclTimer"><a class="viewcode-back" href="../../api_reference/dpctl/generated/dpctl.SyclTimer.html#dpctl.SyclTimer">[docs]</a><span class="k">class</span> <span class="nc">SyclTimer</span><span class="p">:</span>
898860
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
899861
<span class="sd"> Context to measure device time and host wall-time of execution</span>
@@ -908,7 +870,7 @@ <h1>Source code for dpctl._sycl_timer</h1><div class="highlight"><pre>
908870
<span class="sd"> q = dpctl.SyclQueue(property=&quot;enable_profiling&quot;)</span>
909871

910872
<span class="sd"> # create the timer</span>
911-
<span class="sd"> milliseconds_sc = 1e3</span>
873+
<span class="sd"> milliseconds_sc = 1e-3</span>
912874
<span class="sd"> timer = dpctl.SyclTimer(time_scale = milliseconds_sc)</span>
913875

914876
<span class="sd"> # use the timer</span>
@@ -923,36 +885,25 @@ <h1>Source code for dpctl._sycl_timer</h1><div class="highlight"><pre>
923885
<span class="sd"> wall_dt, device_dt = timer.dt</span>
924886

925887
<span class="sd"> .. note::</span>
926-
<span class="sd"> The timer submits tasks to the queue at the entrance and the</span>
888+
<span class="sd"> The timer submits barriers to the queue at the entrance and the</span>
927889
<span class="sd"> exit of the context and uses profiling information from events</span>
928890
<span class="sd"> associated with these submissions to perform the timing. Thus</span>
929891
<span class="sd"> :class:`dpctl.SyclTimer` requires the queue with ``&quot;enable_profiling&quot;``</span>
930892
<span class="sd"> property. In order to be able to collect the profiling information,</span>
931893
<span class="sd"> the ``dt`` property ensures that both submitted barriers complete their</span>
932894
<span class="sd"> execution and thus effectively synchronizes the queue.</span>
933895

934-
<span class="sd"> `device_timer` keyword argument controls the type of tasks submitted.</span>
935-
<span class="sd"> With `device_timer=&quot;queue_barrier&quot;`, queue barrier tasks are used. With</span>
936-
<span class="sd"> `device_timer=&quot;order_manager&quot;`, a single empty body task is inserted</span>
937-
<span class="sd"> instead relying on order manager (used by `dpctl.tensor` operations) to</span>
938-
<span class="sd"> order these tasks so that they fence operations performed within</span>
939-
<span class="sd"> timer&#39;s context.</span>
940-
941896
<span class="sd"> Args:</span>
942897
<span class="sd"> host_timer (callable, optional):</span>
943898
<span class="sd"> A callable such that host_timer() returns current</span>
944899
<span class="sd"> host time in seconds.</span>
945900
<span class="sd"> Default: :py:func:`timeit.default_timer`.</span>
946-
<span class="sd"> device_timer (Literal[&quot;queue_barrier&quot;, &quot;order_manager&quot;], optional):</span>
947-
<span class="sd"> Device timing method. Default: &quot;queue_barrier&quot;.</span>
948901
<span class="sd"> time_scale (Union[int, float], optional):</span>
949902
<span class="sd"> Ratio of the unit of time of interest and one second.</span>
950903
<span class="sd"> Default: ``1``.</span>
951904
<span class="sd"> &quot;&quot;&quot;</span>
952905

953-
<div class="viewcode-block" id="SyclTimer.__init__"><a class="viewcode-back" href="../../api_reference/dpctl/generated/generated/dpctl.SyclTimer.__init__.html#dpctl.SyclTimer.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
954-
<span class="bp">self</span><span class="p">,</span> <span class="n">host_timer</span><span class="o">=</span><span class="n">timeit</span><span class="o">.</span><span class="n">default_timer</span><span class="p">,</span> <span class="n">device_timer</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">time_scale</span><span class="o">=</span><span class="mi">1</span>
955-
<span class="p">):</span>
906+
<div class="viewcode-block" id="SyclTimer.__init__"><a class="viewcode-back" href="../../api_reference/dpctl/generated/generated/dpctl.SyclTimer.__init__.html#dpctl.SyclTimer.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host_timer</span><span class="o">=</span><span class="n">timeit</span><span class="o">.</span><span class="n">default_timer</span><span class="p">,</span> <span class="n">time_scale</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
956907
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
957908
<span class="sd"> Create new instance of :class:`.SyclTimer`.</span>
958909

@@ -961,8 +912,6 @@ <h1>Source code for dpctl._sycl_timer</h1><div class="highlight"><pre>
961912
<span class="sd"> A function that takes no arguments and returns a value</span>
962913
<span class="sd"> measuring time.</span>
963914
<span class="sd"> Default: :meth:`timeit.default_timer`.</span>
964-
<span class="sd"> device_timer (Literal[&quot;queue_barrier&quot;, &quot;order_manager&quot;], optional):</span>
965-
<span class="sd"> Device timing method. Default: &quot;queue_barrier&quot;</span>
966915
<span class="sd"> time_scale (Union[int, float], optional):</span>
967916
<span class="sd"> Scaling factor applied to durations measured by</span>
968917
<span class="sd"> the host_timer. Default: ``1``.</span>
@@ -971,27 +920,12 @@ <h1>Source code for dpctl._sycl_timer</h1><div class="highlight"><pre>
971920
<span class="bp">self</span><span class="o">.</span><span class="n">time_scale</span> <span class="o">=</span> <span class="n">time_scale</span>
972921
<span class="bp">self</span><span class="o">.</span><span class="n">queue</span> <span class="o">=</span> <span class="kc">None</span>
973922
<span class="bp">self</span><span class="o">.</span><span class="n">host_times</span> <span class="o">=</span> <span class="p">[]</span>
974-
<span class="bp">self</span><span class="o">.</span><span class="n">bracketing_events</span> <span class="o">=</span> <span class="p">[]</span>
975-
<span class="bp">self</span><span class="o">.</span><span class="n">_context_data</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
976-
<span class="k">if</span> <span class="n">device_timer</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
977-
<span class="n">device_timer</span> <span class="o">=</span> <span class="s2">&quot;queue_barrier&quot;</span>
978-
<span class="k">if</span> <span class="n">device_timer</span> <span class="o">==</span> <span class="s2">&quot;queue_barrier&quot;</span><span class="p">:</span>
979-
<span class="bp">self</span><span class="o">.</span><span class="n">_device_timer_class</span> <span class="o">=</span> <span class="n">QueueBarrierDeviceTimer</span>
980-
<span class="k">elif</span> <span class="n">device_timer</span> <span class="o">==</span> <span class="s2">&quot;order_manager&quot;</span><span class="p">:</span>
981-
<span class="bp">self</span><span class="o">.</span><span class="n">_device_timer_class</span> <span class="o">=</span> <span class="n">OrderManagerDeviceTimer</span>
982-
<span class="k">else</span><span class="p">:</span>
983-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
984-
<span class="s2">&quot;Supported values for device_timer keyword are &quot;</span>
985-
<span class="s2">&quot;&#39;queue_barrier&#39;, &#39;order_manager&#39;, got &quot;</span>
986-
<span class="sa">f</span><span class="s2">&quot;&#39;</span><span class="si">{</span><span class="n">device_timer</span><span class="si">}</span><span class="s2">&#39;&quot;</span>
987-
<span class="p">)</span>
988-
<span class="bp">self</span><span class="o">.</span><span class="n">_device_timer</span> <span class="o">=</span> <span class="kc">None</span></div>
923+
<span class="bp">self</span><span class="o">.</span><span class="n">bracketing_events</span> <span class="o">=</span> <span class="p">[]</span></div>
989924

990925
<span class="k">def</span> <span class="fm">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">queue</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
991926
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">queue</span><span class="p">,</span> <span class="n">SyclQueue</span><span class="p">):</span>
992927
<span class="k">if</span> <span class="n">queue</span><span class="o">.</span><span class="n">has_enable_profiling</span><span class="p">:</span>
993928
<span class="bp">self</span><span class="o">.</span><span class="n">queue</span> <span class="o">=</span> <span class="n">queue</span>
994-
<span class="bp">self</span><span class="o">.</span><span class="n">_device_timer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_device_timer_class</span><span class="p">(</span><span class="n">queue</span><span class="p">)</span>
995929
<span class="k">else</span><span class="p">:</span>
996930
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
997931
<span class="s2">&quot;The given queue was not created with the &quot;</span>
@@ -1005,17 +939,17 @@ <h1>Source code for dpctl._sycl_timer</h1><div class="highlight"><pre>
1005939
<span class="k">return</span> <span class="bp">self</span>
1006940

1007941
<span class="k">def</span> <span class="fm">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
1008-
<span class="n">_event_start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_device_timer</span><span class="o">.</span><span class="n">get_event</span><span class="p">()</span>
1009-
<span class="n">_host_start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="p">()</span>
1010-
<span class="bp">self</span><span class="o">.</span><span class="n">_context_data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">_event_start</span><span class="p">,</span> <span class="n">_host_start</span><span class="p">))</span>
942+
<span class="bp">self</span><span class="o">.</span><span class="n">_event_start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">queue</span><span class="o">.</span><span class="n">submit_barrier</span><span class="p">()</span>
943+
<span class="bp">self</span><span class="o">.</span><span class="n">_host_start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="p">()</span>
1011944
<span class="k">return</span> <span class="bp">self</span>
1012945

1013946
<span class="k">def</span> <span class="fm">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
1014-
<span class="n">_event_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_device_timer</span><span class="o">.</span><span class="n">get_event</span><span class="p">()</span>
1015-
<span class="n">_host_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="p">()</span>
1016-
<span class="n">_event_start</span><span class="p">,</span> <span class="n">_host_start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_context_data</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
1017-
<span class="bp">self</span><span class="o">.</span><span class="n">host_times</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">_host_start</span><span class="p">,</span> <span class="n">_host_end</span><span class="p">))</span>
1018-
<span class="bp">self</span><span class="o">.</span><span class="n">bracketing_events</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">_event_start</span><span class="p">,</span> <span class="n">_event_end</span><span class="p">))</span>
947+
<span class="bp">self</span><span class="o">.</span><span class="n">host_times</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">_host_start</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="p">()))</span>
948+
<span class="bp">self</span><span class="o">.</span><span class="n">bracketing_events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
949+
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_event_start</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">queue</span><span class="o">.</span><span class="n">submit_barrier</span><span class="p">())</span>
950+
<span class="p">)</span>
951+
<span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">_event_start</span>
952+
<span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">_host_start</span>
1019953

1020954
<span class="nd">@property</span>
1021955
<span class="k">def</span> <span class="nf">dt</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>

0 commit comments

Comments
 (0)