<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to use half-float on DPC++ in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1188966#M29684</link>
    <description>&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;Hello.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;I want to use half-float type on Intel DPC++.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;I found "half" type in DPC++ and executed multiply-accumulate operation by&lt;BR /&gt;parallel processing of GPU.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;&lt;BR /&gt;But result of the operation is all zero.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;・Is it impossible to use half-float on DPC++?&lt;BR /&gt;・Is the usage wrong？&lt;BR /&gt;&amp;nbsp; If so, I would like to know how to use.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;Environment:&lt;BR /&gt;&amp;nbsp;Microsoft Visual Studio 2019 Proffesional&lt;BR /&gt;&amp;nbsp;Intel oneAPI beta07&lt;BR /&gt;&amp;nbsp;GPU: Iris(R) Plus Graphics&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;Code sample:&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;LI-CODE lang="markup"&gt;#include &amp;lt;vector&amp;gt; 
#include &amp;lt;CL/sycl.hpp&amp;gt; 

namespace sycl = cl::sycl;

unsigned as_uint(const float x) {
	return *(unsigned*)&amp;amp;x;
}
float as_float(const unsigned x) {
	return *(float*)&amp;amp;x;
}
unsigned short float_to_half(const float x) { 
	const unsigned b = as_uint(x) + 0x00001000;
	const unsigned e = (b &amp;amp; 0x7F800000) &amp;gt;&amp;gt; 23;
	const unsigned m = b &amp;amp; 0x007FFFFF;
	return (b &amp;amp; 0x80000000) &amp;gt;&amp;gt; 16 | (e &amp;gt; 112) * ((((e - 112) &amp;lt;&amp;lt; 10) &amp;amp; 0x7C00) 
		| m &amp;gt;&amp;gt; 13) | ((e &amp;lt; 113) &amp;amp; (e &amp;gt; 101)) * ((((0x007FF000 + m) &amp;gt;&amp;gt; (125 - e)) + 1) &amp;gt;&amp;gt; 1) | (e &amp;gt; 143) * 0x7FFF;
}

int main() {

	half* v1 = (half*)malloc(1024 * sizeof(half));
	half* v2 = (half*)malloc(1024 * sizeof(half));
	half* out = (half*)malloc(1024 * sizeof(half));
	float val;
	for (int i = 0; i &amp;lt; 1024; i++) {
		val = (float)i;
		v1[i] = float_to_half(val);
		v2[i] = float_to_half(val+1);
		out[i] = 0;
	}
	
	sycl::gpu_selector device_selector;
	sycl::queue d_queue(device_selector);

	sycl::buffer&amp;lt;half, 1&amp;gt; a_device(v1, sycl::range&amp;lt;1&amp;gt;(1024));
	sycl::buffer&amp;lt;half, 1&amp;gt; b_device(v2, sycl::range&amp;lt;1&amp;gt;(1024));
	sycl::buffer&amp;lt;half, 1&amp;gt; c_device(out, sycl::range&amp;lt;1&amp;gt;(1024));

	{
		d_queue.submit([&amp;amp;](sycl::handler&amp;amp; cgh) {
			auto A = a_device.get_access&amp;lt;sycl::access::mode::read&amp;gt;(cgh);
			auto B = b_device.get_access&amp;lt;sycl::access::mode::read&amp;gt;(cgh);
			auto C = c_device.get_access&amp;lt;sycl::access::mode::write&amp;gt;(cgh);
			cgh.parallel_for(sycl::range&amp;lt;1&amp;gt;(1024), [=](sycl::id&amp;lt;1&amp;gt; idx) {

				C[idx] += A[idx] * B[idx];
				});
			});
	}
	for (int i = 0; i &amp;lt; 20; i++) {
		printf("%u,%u,%u,\n", v1[i], v2[i], out[i]);
	}
	free(v1);
	free(v2);
	free(out);
	return(0);
}

&lt;/LI-CODE&gt;
&lt;P&gt;out is all zero.&amp;nbsp;&lt;FONT style="background-color: #ffffff;"&gt;I think the output result is not calculated correctly.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If it is "float", I will get the correct value.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
    <pubDate>Thu, 02 Jul 2020 08:03:24 GMT</pubDate>
    <dc:creator>k_higashi</dc:creator>
    <dc:date>2020-07-02T08:03:24Z</dc:date>
    <item>
      <title>How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1188966#M29684</link>
      <description>&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;Hello.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;I want to use half-float type on Intel DPC++.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;I found "half" type in DPC++ and executed multiply-accumulate operation by&lt;BR /&gt;parallel processing of GPU.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;&lt;BR /&gt;But result of the operation is all zero.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;・Is it impossible to use half-float on DPC++?&lt;BR /&gt;・Is the usage wrong？&lt;BR /&gt;&amp;nbsp; If so, I would like to know how to use.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;Environment:&lt;BR /&gt;&amp;nbsp;Microsoft Visual Studio 2019 Proffesional&lt;BR /&gt;&amp;nbsp;Intel oneAPI beta07&lt;BR /&gt;&amp;nbsp;GPU: Iris(R) Plus Graphics&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;Code sample:&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;LI-CODE lang="markup"&gt;#include &amp;lt;vector&amp;gt; 
#include &amp;lt;CL/sycl.hpp&amp;gt; 

namespace sycl = cl::sycl;

unsigned as_uint(const float x) {
	return *(unsigned*)&amp;amp;x;
}
float as_float(const unsigned x) {
	return *(float*)&amp;amp;x;
}
unsigned short float_to_half(const float x) { 
	const unsigned b = as_uint(x) + 0x00001000;
	const unsigned e = (b &amp;amp; 0x7F800000) &amp;gt;&amp;gt; 23;
	const unsigned m = b &amp;amp; 0x007FFFFF;
	return (b &amp;amp; 0x80000000) &amp;gt;&amp;gt; 16 | (e &amp;gt; 112) * ((((e - 112) &amp;lt;&amp;lt; 10) &amp;amp; 0x7C00) 
		| m &amp;gt;&amp;gt; 13) | ((e &amp;lt; 113) &amp;amp; (e &amp;gt; 101)) * ((((0x007FF000 + m) &amp;gt;&amp;gt; (125 - e)) + 1) &amp;gt;&amp;gt; 1) | (e &amp;gt; 143) * 0x7FFF;
}

int main() {

	half* v1 = (half*)malloc(1024 * sizeof(half));
	half* v2 = (half*)malloc(1024 * sizeof(half));
	half* out = (half*)malloc(1024 * sizeof(half));
	float val;
	for (int i = 0; i &amp;lt; 1024; i++) {
		val = (float)i;
		v1[i] = float_to_half(val);
		v2[i] = float_to_half(val+1);
		out[i] = 0;
	}
	
	sycl::gpu_selector device_selector;
	sycl::queue d_queue(device_selector);

	sycl::buffer&amp;lt;half, 1&amp;gt; a_device(v1, sycl::range&amp;lt;1&amp;gt;(1024));
	sycl::buffer&amp;lt;half, 1&amp;gt; b_device(v2, sycl::range&amp;lt;1&amp;gt;(1024));
	sycl::buffer&amp;lt;half, 1&amp;gt; c_device(out, sycl::range&amp;lt;1&amp;gt;(1024));

	{
		d_queue.submit([&amp;amp;](sycl::handler&amp;amp; cgh) {
			auto A = a_device.get_access&amp;lt;sycl::access::mode::read&amp;gt;(cgh);
			auto B = b_device.get_access&amp;lt;sycl::access::mode::read&amp;gt;(cgh);
			auto C = c_device.get_access&amp;lt;sycl::access::mode::write&amp;gt;(cgh);
			cgh.parallel_for(sycl::range&amp;lt;1&amp;gt;(1024), [=](sycl::id&amp;lt;1&amp;gt; idx) {

				C[idx] += A[idx] * B[idx];
				});
			});
	}
	for (int i = 0; i &amp;lt; 20; i++) {
		printf("%u,%u,%u,\n", v1[i], v2[i], out[i]);
	}
	free(v1);
	free(v2);
	free(out);
	return(0);
}

&lt;/LI-CODE&gt;
&lt;P&gt;out is all zero.&amp;nbsp;&lt;FONT style="background-color: #ffffff;"&gt;I think the output result is not calculated correctly.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If it is "float", I will get the correct value.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 02 Jul 2020 08:03:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1188966#M29684</guid>
      <dc:creator>k_higashi</dc:creator>
      <dc:date>2020-07-02T08:03:24Z</dc:date>
    </item>
    <item>
      <title>Re:How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1189273#M29685</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Zeros you see in the output is due to non-synchronization of device part of the code with host part.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I could see that you have not enclosed buffer declaration within the scope(Dpc++ scope). In your code, scope starts after buffer declaration. As a result, the program doesn't wait for the execution of device kernel.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In other words, the program skips the device kernel execution and proceeds with the remaining part of the program (printing the values).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When you enclose the buffers within the scope, the program execution is bound to wait until the buffer destructor is called. (since buffers are declared within the scope). Once the device kernel execution complete, the data is copied back from device to host implicitly and buffer destructor gets called.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;	sycl::gpu_selector device_selector;
	sycl::queue d_queue(device_selector);
    {
	sycl::buffer&amp;lt;half, 1&amp;gt; a_device(v1, sycl::range&amp;lt;1&amp;gt;(1024));
	sycl::buffer&amp;lt;half, 1&amp;gt; b_device(v2, sycl::range&amp;lt;1&amp;gt;(1024));
	sycl::buffer&amp;lt;half, 1&amp;gt; c_device(out, sycl::range&amp;lt;1&amp;gt;(1024));

	
		d_queue.submit([&amp;amp;](sycl::handler&amp;amp; cgh) {
			auto A = a_device.get_access&amp;lt;sycl::access::mode::read&amp;gt;(cgh);
			auto B = b_device.get_access&amp;lt;sycl::access::mode::read&amp;gt;(cgh);
			auto C = c_device.get_access&amp;lt;sycl::access::mode::write&amp;gt;(cgh);
			cgh.parallel_for(sycl::range&amp;lt;1&amp;gt;(1024), [=](sycl::id&amp;lt;1&amp;gt; idx) {

				C[idx] += A[idx] * B[idx];
				});
			});
	}
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Let me know if you face any issue.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note: In some cases, device kernel runs extremely fast(depending on the size/type of application). In such cases, synchronization might happen even if the buffers aren't enclosed within the scope. However, it's a good practice to enclose the buffers within the scope.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;--Rahul&lt;/P&gt;</description>
      <pubDate>Fri, 03 Jul 2020 10:28:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1189273#M29685</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-07-03T10:28:32Z</dc:date>
    </item>
    <item>
      <title>Re: Re:How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1189738#M29686</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Thank you for your answer.&lt;/P&gt;
&lt;P&gt;I fixed my code according to your advice, and I got the calculation result.&lt;/P&gt;
&lt;P&gt;But I think the calculation result is not correct.&lt;/P&gt;
&lt;P&gt;For example, perform the following calculations with parallel_for.&lt;/P&gt;
&lt;P&gt;C[idx] = A[idx] * B[idx];&lt;/P&gt;
&lt;P&gt;&amp;lt;expected value&amp;gt;&lt;BR /&gt;out = v1 * v2 &lt;BR /&gt;v1, v2, out&lt;BR /&gt;0,&amp;nbsp; 1,&amp;nbsp; 0&lt;BR /&gt;1,&amp;nbsp; 2,&amp;nbsp; 2 (half:29728)&lt;BR /&gt;2,&amp;nbsp; 3,&amp;nbsp; 6 (half:29808)&lt;BR /&gt;3,&amp;nbsp; 4, 12 (half:29864)&lt;/P&gt;
&lt;P&gt;However, the calculation result is as follows.&lt;/P&gt;
&lt;P&gt;v1, v2, out(half)&lt;BR /&gt;0,&amp;nbsp; 1,&amp;nbsp; 0&lt;BR /&gt;1,&amp;nbsp; 2,&amp;nbsp; 31744&lt;BR /&gt;2,&amp;nbsp; 3,&amp;nbsp; 31744&lt;BR /&gt;3,&amp;nbsp; 4,&amp;nbsp; 31744&lt;BR /&gt;...&lt;BR /&gt;What am I doing wrong? &lt;BR /&gt;Please advice me.&lt;/P&gt;</description>
      <pubDate>Mon, 06 Jul 2020 03:48:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1189738#M29686</guid>
      <dc:creator>k_higashi</dc:creator>
      <dc:date>2020-07-06T03:48:53Z</dc:date>
    </item>
    <item>
      <title>Re:How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1189775#M29687</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I'd suggest you to compare the results of the serial version of your code to its dpc++ version. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Perform serial computation on CPU(A simple C++ loop to perform computation should do) and compare its results with parallel(Dpc++) computation.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Let me know the results after comparison.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Rahul&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 06 Jul 2020 07:02:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1189775#M29687</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-07-06T07:02:35Z</dc:date>
    </item>
    <item>
      <title>Re: Re:How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1190542#M29714</link>
      <description>&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;I tried "half" type multiplication on CPU(simple C++).&lt;BR /&gt;As a result, I got the same result as DPC++.&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;&amp;nbsp;(But this was not what we expected...)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;I found that DPC++ has "half" type, and, &lt;BR /&gt;I was hoping that the "half" type could be used instead of the "float" type to make the computation time more fast.&lt;BR /&gt;However, I understand that I can't use a simple arithmetic expression like the "float" type in C++ code.&lt;BR /&gt;(no support "half" in C++.)&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="background-color: #ffffff;"&gt;&lt;BR /&gt;Thank you for your help.&lt;BR /&gt;&lt;/FONT&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 08 Jul 2020 07:00:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1190542#M29714</guid>
      <dc:creator>k_higashi</dc:creator>
      <dc:date>2020-07-08T07:00:59Z</dc:date>
    </item>
    <item>
      <title>Re:How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1190914#M29733</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Since the results are similar for both serial as well as parallel versions, I feel that the issue could be with &lt;SPAN style="font-size: 14px; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace;"&gt;float_to_half(const float x) function.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;"Half" type is a OpenCL/SYCL specification. It is not present in standard C++ specification. Float datatype occupies 4 bytes, whereas half type occupies only 2 bytes. For more information on half type, kindly refer to OpenCL/SYCL specifications.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I don't see the point of &lt;SPAN style="font-size: 14px; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace;"&gt;float_to_half(const float x) function &lt;/SPAN&gt;because you can readily use half type, which guarantees half float precision. My suggestion would be to try out the computation without calling this function(on host) and see if it gives right results.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Coming to speed up, there could be some performance improvement with half(logically speaking). However, I'd suggest you to modify your code, to print the time taken for computation in both the cases and let me know.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Rahul&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 09 Jul 2020 06:22:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1190914#M29733</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-07-09T06:22:18Z</dc:date>
    </item>
    <item>
      <title>Re:How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1191854#M29761</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Could you kindly confirm if the solution provided helps?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;--Rahul&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 13 Jul 2020 06:49:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1191854#M29761</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-07-13T06:49:04Z</dc:date>
    </item>
    <item>
      <title>Re:How to use half-float on DPC++</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1193805#M29788</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I have not heard from back you, so I will close this thread from my end. If you still have issues, feel free to post a new question. Intel will no longer monitor this thread, but it will remain open for community discussion.&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 21 Jul 2020 05:29:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/How-to-use-half-float-on-DPC/m-p/1193805#M29788</guid>
      <dc:creator>RahulV_intel</dc:creator>
      <dc:date>2020-07-21T05:29:16Z</dc:date>
    </item>
  </channel>
</rss>

