<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Comments on: Try GPU computing with WebCL</title>
	<atom:link href="http://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/</link>
	<description>All about electronics and circuit design</description>
	<lastBuildDate>Sun, 05 Apr 2026 18:35:45 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.14</generator>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-1789795</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 15 Dec 2022 11:16:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-1789795</guid>
		<description><![CDATA[What’s the Difference Between CUDA and ROCm for GPGPU Apps?
Dec. 2, 2022
NVIDIA’s CUDA and AMD’s ROCm provide frameworks to take advantage of the respective GPU platforms.
https://www.electronicdesign.com/technologies/embedded-revolution/article/21254328/electronic-design-whats-the-difference-between-cuda-and-rocm-for-gpgpu-apps?utm_source=EG+ED+Connected+Solutions&amp;utm_medium=email&amp;utm_campaign=CPS221209019&amp;o_eid=7211D2691390C9R&amp;rdx.ident[pull]=omeda&#124;7211D2691390C9R&amp;oly_enc_id=7211D2691390C9R]]></description>
		<content:encoded><![CDATA[<p>What’s the Difference Between CUDA and ROCm for GPGPU Apps?<br />
Dec. 2, 2022<br />
NVIDIA’s CUDA and AMD’s ROCm provide frameworks to take advantage of the respective GPU platforms.<br />
<a href="https://www.electronicdesign.com/technologies/embedded-revolution/article/21254328/electronic-design-whats-the-difference-between-cuda-and-rocm-for-gpgpu-apps?utm_source=EG+ED+Connected+Solutions&#038;utm_medium=email&#038;utm_campaign=CPS221209019&#038;o_eid=7211D2691390C9R&#038;rdx.identpull=omeda" rel="nofollow">https://www.electronicdesign.com/technologies/embedded-revolution/article/21254328/electronic-design-whats-the-difference-between-cuda-and-rocm-for-gpgpu-apps?utm_source=EG+ED+Connected+Solutions&#038;utm_medium=email&#038;utm_campaign=CPS221209019&#038;o_eid=7211D2691390C9R&#038;rdx.identpull=omeda</a>|7211D2691390C9R&amp;oly_enc_id=7211D2691390C9R</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-1567803</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Tue, 24 Oct 2017 14:04:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-1567803</guid>
		<description><![CDATA[Solving Mazes with Graphics Cards
https://hackaday.com/2017/10/23/solving-mazes-with-graphics-cards/

Software that runs on a GPU is called a shader. In this example a shader is shown that finds the way through a maze. We also get to catch a glimpse at the limitations that make this field of software special: [Viktor]’s solution has to work with only four variables, because all information is stored in the red, green, blue and alpha channels of an image. The alpha channel represents the boundaries of the maze. Red and green channels are used to broadcast waves from the beginning and end points of the maze. Where these two waves meet is the shortest solution, a value which is captured through the blue channel.]]></description>
		<content:encoded><![CDATA[<p>Solving Mazes with Graphics Cards<br />
<a href="https://hackaday.com/2017/10/23/solving-mazes-with-graphics-cards/" rel="nofollow">https://hackaday.com/2017/10/23/solving-mazes-with-graphics-cards/</a></p>
<p>Software that runs on a GPU is called a shader. In this example a shader is shown that finds the way through a maze. We also get to catch a glimpse at the limitations that make this field of software special: [Viktor]’s solution has to work with only four variables, because all information is stored in the red, green, blue and alpha channels of an image. The alpha channel represents the boundaries of the maze. Red and green channels are used to broadcast waves from the beginning and end points of the maze. Where these two waves meet is the shortest solution, a value which is captured through the blue channel.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-1434558</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Fri, 11 Sep 2015 08:57:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-1434558</guid>
		<description><![CDATA[The Most Under-rated FPGA Design Tool Ever
http://www.eetimes.com/author.asp?section_id=36&amp;doc_id=1327664&amp;

There is a design tool that is being quietly adopted by FPGA engineers because, in many cases, it produces results that are better than hand-coded counterparts.

FPGAs keep getting larger, the designs more complex, and the need for high level design (HLD) flows never seems to go away. C-based design for FPGAs has been promoted for over two decades and several such tools are currently on the market. Model-based design has also been around for a long time from multiple vendors. OpenCL for FPGAs has been getting lots of press in the last couple of years. Yet, despite all of this, 90+% of FPGA designs continue to be built using traditional Verilog or VHDL.

No one can deny the need for HLD. New FPGAs contain over 1 million logic elements, with thousands of hardened DSP and memory blocks. Some vendor&#039;s devices can even support floating-point as efficiently as fixed-point arithmetic. Data convertor and interface protocols routinely run at multiple GSPS (giga samples per second), requiring highly parallel or vectorized processing. Timing closure, simulation, and verification become ever-more time-consuming as design sizes grow. But HLD adoption still lags, and FPGAs are primarily programmed by hardware-centric engineers using traditional hardware description languages (HDLs).

The primary reason for this is quality of results (QoR). All high-level design tools have two key challenges to overcome. One is to translate the designer&#039;s intent into implementation when the design is described in a high-level format. This is especially difficult when software programming languages are used (C++, MATLAB, or others), which are inherently serial in nature. It is then up to the compiler to decide by how much and where to parallelize the hardware implementation. This can be aided by adding special intrinsics into the design language, but this defeats the purpose. OpenCL addresses this by having the programmer describe serial dependencies in the datapath, which is why OpenCL is often used for programming GPUs. It is then up to the OpenCL compiler to decide how to balance parallelism against throughput in the implementation. However, OpenCL programming is not exactly a common skillset in the industry.]]></description>
		<content:encoded><![CDATA[<p>The Most Under-rated FPGA Design Tool Ever<br />
<a href="http://www.eetimes.com/author.asp?section_id=36&#038;doc_id=1327664&#038;amp" rel="nofollow">http://www.eetimes.com/author.asp?section_id=36&#038;doc_id=1327664&#038;amp</a>;</p>
<p>There is a design tool that is being quietly adopted by FPGA engineers because, in many cases, it produces results that are better than hand-coded counterparts.</p>
<p>FPGAs keep getting larger, the designs more complex, and the need for high level design (HLD) flows never seems to go away. C-based design for FPGAs has been promoted for over two decades and several such tools are currently on the market. Model-based design has also been around for a long time from multiple vendors. OpenCL for FPGAs has been getting lots of press in the last couple of years. Yet, despite all of this, 90+% of FPGA designs continue to be built using traditional Verilog or VHDL.</p>
<p>No one can deny the need for HLD. New FPGAs contain over 1 million logic elements, with thousands of hardened DSP and memory blocks. Some vendor&#8217;s devices can even support floating-point as efficiently as fixed-point arithmetic. Data convertor and interface protocols routinely run at multiple GSPS (giga samples per second), requiring highly parallel or vectorized processing. Timing closure, simulation, and verification become ever-more time-consuming as design sizes grow. But HLD adoption still lags, and FPGAs are primarily programmed by hardware-centric engineers using traditional hardware description languages (HDLs).</p>
<p>The primary reason for this is quality of results (QoR). All high-level design tools have two key challenges to overcome. One is to translate the designer&#8217;s intent into implementation when the design is described in a high-level format. This is especially difficult when software programming languages are used (C++, MATLAB, or others), which are inherently serial in nature. It is then up to the compiler to decide by how much and where to parallelize the hardware implementation. This can be aided by adding special intrinsics into the design language, but this defeats the purpose. OpenCL addresses this by having the programmer describe serial dependencies in the datapath, which is why OpenCL is often used for programming GPUs. It is then up to the OpenCL compiler to decide how to balance parallelism against throughput in the implementation. However, OpenCL programming is not exactly a common skillset in the industry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-1281776</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 06 Nov 2014 09:32:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-1281776</guid>
		<description><![CDATA[GPU Compute and OpenCL: an introduction.
http://www.edn-europe.com/en/gpu-compute-and-opencl-an-introduction..html?cmp_id=7&amp;news_id=10005133&amp;vID=209#.VFs-cclsUik

This article provides, to the reader unfamiliar with the subject, an introduction to the GPU evolution, current architecture, and suitability for compute intensive applications.]]></description>
		<content:encoded><![CDATA[<p>GPU Compute and OpenCL: an introduction.<br />
<a href="http://www.edn-europe.com/en/gpu-compute-and-opencl-an-introduction" rel="nofollow">http://www.edn-europe.com/en/gpu-compute-and-opencl-an-introduction</a>..html?cmp_id=7&amp;news_id=10005133&amp;vID=209#.VFs-cclsUik</p>
<p>This article provides, to the reader unfamiliar with the subject, an introduction to the GPU evolution, current architecture, and suitability for compute intensive applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-1272877</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Tue, 28 Oct 2014 09:42:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-1272877</guid>
		<description><![CDATA[Implementing FPGA Design with the OpenCL Standard
http://www.altera.com/literature/wp/wp-01173-opencl.pdf

Utilizing the Khronos Group’s OpenCL™ standard on an FPGA may offer significantly higher performance and at much lower power than is available today from hardware architectures such as CPUs, graphics processing units (GPUs), and digital signal processing (DSP) units. In addition, an FPGA-based heterogeneous system (CPU + FPGA) using the OpenCL standard has a significant time-to-market advantage compared to traditional FPGA development using lower level hardware description languages (HDLs) such as Verilog or VHDL]]></description>
		<content:encoded><![CDATA[<p>Implementing FPGA Design with the OpenCL Standard<br />
<a href="http://www.altera.com/literature/wp/wp-01173-opencl.pdf" rel="nofollow">http://www.altera.com/literature/wp/wp-01173-opencl.pdf</a></p>
<p>Utilizing the Khronos Group’s OpenCL™ standard on an FPGA may offer significantly higher performance and at much lower power than is available today from hardware architectures such as CPUs, graphics processing units (GPUs), and digital signal processing (DSP) units. In addition, an FPGA-based heterogeneous system (CPU + FPGA) using the OpenCL standard has a significant time-to-market advantage compared to traditional FPGA development using lower level hardware description languages (HDLs) such as Verilog or VHDL</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Monster Warlord</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-268455</link>
		<dc:creator><![CDATA[Monster Warlord]]></dc:creator>
		<pubDate>Tue, 11 Mar 2014 23:56:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-268455</guid>
		<description><![CDATA[I was wondering if you ever considered changing the structure 
of your site? Its very well written; I love what youve got to say.
But maybe you could a little more in the way of content so people could connect with it 
better. Youve got an awful lot of text for only having one or two pictures.
Maybe you could space it out better?]]></description>
		<content:encoded><![CDATA[<p>I was wondering if you ever considered changing the structure<br />
of your site? Its very well written; I love what youve got to say.<br />
But maybe you could a little more in the way of content so people could connect with it<br />
better. Youve got an awful lot of text for only having one or two pictures.<br />
Maybe you could space it out better?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mozila fire</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-23791</link>
		<dc:creator><![CDATA[mozila fire]]></dc:creator>
		<pubDate>Tue, 10 Dec 2013 09:48:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-23791</guid>
		<description><![CDATA[Wow! It&#039;s a real shame more folks don&#039;t know about this site,
it covered everything I needed!!!]]></description>
		<content:encoded><![CDATA[<p>Wow! It&#8217;s a real shame more folks don&#8217;t know about this site,<br />
it covered everything I needed!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-23790</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Tue, 06 Aug 2013 13:40:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-23790</guid>
		<description><![CDATA[Using OpenCL for Network Acceleration
http://rtcmagazine.com/articles/view/103209

Investigating the practicality of using OpenCL to accelerate AES and DES Encryption and Decryption by leveraging the GPU engines of the APU, reveals a realm of possibilities for exploiting parallelism on hybrid processors.

Microprocessor designs are trending in favor of a higher number of cores per socket versus increased clock speed. Increasingly, more cores are being integrated on the same die to fully take advantage of high-speed interconnects for interprocessor communications. Companies like Advanced Micro Devices (AMD) are innovating high-performance computing by integrating graphics with x86 CPUs to create what AMD refers to as Accelerated Processing Units (APUs).

The advent of the APU creates opportunities for designers to develop solutions not possible a few years ago. These solutions utilize multiple languages and execute across hardware execution domain to enable a wide variety of new applications. One such application is the use of GPU resources as a massively parallel “off-load” engine for computationally intense algorithms in security and networking.

While the results for each of the algorithms differed slightly on both the CPU (blue lines) and GPU (red lines), the overall trend for each was very consistent. It is clear that when the network traffic load was relatively light—meaning that there were not many concurrent threads required to support the algorithm—the CPUs were more than adequate and in fact more efficient than using OpenCL and the GPU cores. However, as the workload and number of concurrent threads increased, the OpenCL and GPU proved to be a significantly better solution.

The beauty of the APU-based architecture is that it allows the designer to decide when and if to use the GPU resources and how.]]></description>
		<content:encoded><![CDATA[<p>Using OpenCL for Network Acceleration<br />
<a href="http://rtcmagazine.com/articles/view/103209" rel="nofollow">http://rtcmagazine.com/articles/view/103209</a></p>
<p>Investigating the practicality of using OpenCL to accelerate AES and DES Encryption and Decryption by leveraging the GPU engines of the APU, reveals a realm of possibilities for exploiting parallelism on hybrid processors.</p>
<p>Microprocessor designs are trending in favor of a higher number of cores per socket versus increased clock speed. Increasingly, more cores are being integrated on the same die to fully take advantage of high-speed interconnects for interprocessor communications. Companies like Advanced Micro Devices (AMD) are innovating high-performance computing by integrating graphics with x86 CPUs to create what AMD refers to as Accelerated Processing Units (APUs).</p>
<p>The advent of the APU creates opportunities for designers to develop solutions not possible a few years ago. These solutions utilize multiple languages and execute across hardware execution domain to enable a wide variety of new applications. One such application is the use of GPU resources as a massively parallel “off-load” engine for computationally intense algorithms in security and networking.</p>
<p>While the results for each of the algorithms differed slightly on both the CPU (blue lines) and GPU (red lines), the overall trend for each was very consistent. It is clear that when the network traffic load was relatively light—meaning that there were not many concurrent threads required to support the algorithm—the CPUs were more than adequate and in fact more efficient than using OpenCL and the GPU cores. However, as the workload and number of concurrent threads increased, the OpenCL and GPU proved to be a significantly better solution.</p>
<p>The beauty of the APU-based architecture is that it allows the designer to decide when and if to use the GPU resources and how.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-23788</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Tue, 05 Mar 2013 08:55:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-23788</guid>
		<description><![CDATA[OpenCL drivers discovered on Nexus 4 and Nexus 10 devices
http://www.anandtech.com/show/6804/opencl-drivers-discovered-on-nexus-4-and-nexus-10-devices

Companies such as AMD, Intel and Nvidia have been shipping OpenCL drivers on the desktop for some time now. On the mobile side, vendors such as ARM,  Imagination, Qualcomm, Samsung and TI have been promising OpenCL on mobile and often show off demos using OpenCL. Drivers from vendors such as ARM, Qualcomm and Imagination have also passed official conformance tests, certifying that they do have working drivers in at least development firmwares.

However,  none of the vendors have publically announced whether or not they are already shipping OpenCL in stock firmware on any device.

However, recently we have seen several stories that OpenCL drivers are in fact present on both Nexus 4 and Nexus 10 stock firmware.]]></description>
		<content:encoded><![CDATA[<p>OpenCL drivers discovered on Nexus 4 and Nexus 10 devices<br />
<a href="http://www.anandtech.com/show/6804/opencl-drivers-discovered-on-nexus-4-and-nexus-10-devices" rel="nofollow">http://www.anandtech.com/show/6804/opencl-drivers-discovered-on-nexus-4-and-nexus-10-devices</a></p>
<p>Companies such as AMD, Intel and Nvidia have been shipping OpenCL drivers on the desktop for some time now. On the mobile side, vendors such as ARM,  Imagination, Qualcomm, Samsung and TI have been promising OpenCL on mobile and often show off demos using OpenCL. Drivers from vendors such as ARM, Qualcomm and Imagination have also passed official conformance tests, certifying that they do have working drivers in at least development firmwares.</p>
<p>However,  none of the vendors have publically announced whether or not they are already shipping OpenCL in stock firmware on any device.</p>
<p>However, recently we have seen several stories that OpenCL drivers are in fact present on both Nexus 4 and Nexus 10 stock firmware.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi</title>
		<link>https://www.epanorama.net/blog/2012/05/24/try-gpu-computing-with-webcl/comment-page-1/#comment-23787</link>
		<dc:creator><![CDATA[Tomi]]></dc:creator>
		<pubDate>Sat, 09 Feb 2013 22:12:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/blog/?p=11431#comment-23787</guid>
		<description><![CDATA[Fall Fury: Part 2 - Shaders
http://channel9.msdn.com/coding4fun/articles/Fall-Fury-Part-2-Shaders

In simple terms, shaders are small programs that are executed on the Graphical Processing Unit (GPU) instead of the Central Processing Unit (CPU). In recent years, we’ve seen a major spike in the capabilities of graphic devices, allowing hardware manufacturers to design an execution layer tied to the GPU, therefore being able to target device-specific manipulations to a highly optimized unit. Shaders are not used for simple calculations, but rather for image processing. For example, a shader can be used to adjust image lighting or colors.

Modern GPUs give access to the rendering pipeline that allows developers to execute arbitrary image processing code.

vertex shaders translate the coordinates of a vector in 3D space in relation to the 2D frame. Vertex shaders are executed one time per vector passed to the GPU.

Pixel shaders – these programs are executed on the GPU in relation to every passed pixel
if you want specific pixels adjusted for lighting or 3D bump mapping, a pixel shader can provide the desired effect for a surface.

Geometry shaders – these shaders are the next progression from vertex shaders, introduced with DirectX 10. The developer is able to pass specific primitives as input and either have the output represent the modified version of what was passed to the program or have new primitives, such as triangles, be generated as a result. Geometry shaders are always executed on post-vertex processing in the rendering pipeline.]]></description>
		<content:encoded><![CDATA[<p>Fall Fury: Part 2 &#8211; Shaders<br />
<a href="http://channel9.msdn.com/coding4fun/articles/Fall-Fury-Part-2-Shaders" rel="nofollow">http://channel9.msdn.com/coding4fun/articles/Fall-Fury-Part-2-Shaders</a></p>
<p>In simple terms, shaders are small programs that are executed on the Graphical Processing Unit (GPU) instead of the Central Processing Unit (CPU). In recent years, we’ve seen a major spike in the capabilities of graphic devices, allowing hardware manufacturers to design an execution layer tied to the GPU, therefore being able to target device-specific manipulations to a highly optimized unit. Shaders are not used for simple calculations, but rather for image processing. For example, a shader can be used to adjust image lighting or colors.</p>
<p>Modern GPUs give access to the rendering pipeline that allows developers to execute arbitrary image processing code.</p>
<p>vertex shaders translate the coordinates of a vector in 3D space in relation to the 2D frame. Vertex shaders are executed one time per vector passed to the GPU.</p>
<p>Pixel shaders – these programs are executed on the GPU in relation to every passed pixel<br />
if you want specific pixels adjusted for lighting or 3D bump mapping, a pixel shader can provide the desired effect for a surface.</p>
<p>Geometry shaders – these shaders are the next progression from vertex shaders, introduced with DirectX 10. The developer is able to pass specific primitives as input and either have the output represent the modified version of what was passed to the program or have new primitives, such as triangles, be generated as a result. Geometry shaders are always executed on post-vertex processing in the rendering pipeline.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
