<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>StreamComputing</title>
	<atom:link href="http://streamcomputing.eu/feed/" rel="self" type="application/rss+xml" />
	<link>http://streamcomputing.eu</link>
	<description>for Fast and Scalable Software</description>
	<lastBuildDate>Sun, 19 May 2013 13:42:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>GPU-developers, work for StreamComputing and friends</title>
		<link>http://streamcomputing.eu/blog/2013-05-16/gpu-developers-work-for-streamcomputing-and-friends/</link>
		<comments>http://streamcomputing.eu/blog/2013-05-16/gpu-developers-work-for-streamcomputing-and-friends/#comments</comments>
		<pubDate>Thu, 16 May 2013 11:37:10 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6436</guid>
		<description><![CDATA[<p>Bored at work? Go start working for one of the anti-boring GPU-expert companies: StreamComputing (Netherlands, EU), Appilo (Israel) or AccelerEyes (Georgia, US). We all look for people who know how to code GPUs. Experience is key, so you need to have at least one year of experience in GPU-programming. Submit your CV now and don&#8217;t [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-05-16/gpu-developers-work-for-streamcomputing-and-friends/">GPU-developers, work for StreamComputing and friends</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-6437" alt="apply" src="http://streamcomputing.eu/wp-content/uploads/2013/05/apply-300x210.png" width="300" height="210" />Bored at work? Go start working for one of the anti-boring GPU-expert companies: StreamComputing (Netherlands, EU), Appilo (Israel) or AccelerEyes (Georgia, US).</p>
<p>We all look for people who know how to code GPUs. Experience is key, so you need to have <em>at least</em> one year of experience in GPU-programming.</p>
<p><em>Submit your CV now and don&#8217;t give up on your dream leaving behind the boring times.</em></p>
<h1>StreamComputing</h1>
<p>Amsterdam-based StreamComputing is a young startup with a typical Dutch, open atmosphere (<a href="http://en.wikipedia.org/wiki/Gezelligheid">gezellig</a>). Projects are always different from the previous as we work in various fields. Most work is in parallisation and OpenCL-coding. We are quite demanding of your knowledge on the various hardware-platforms OpenCL works on (GPUs, mobile GPUs, array-processors, DSPs, FPGAs).</p>
<p>See the <a href="http://streamcomputing.eu/about-us/jobs/">jobs-page</a> for more information and how to apply.</p>
<h1>Appilo</h1>
<p>North Israel based Appilo is seeking GPU-programmers for project-basis contracts. Depending on the project, most of the work could usually be performed remotely.</p>
<p>Use the mail on the <a href="http://www.appilo.com/contact">contact-page</a> at Appilo to send your CV.</p>
<h1>AccelerEyes</h1>
<p>Atlanta-based AccelerEyes delivers products which are used to accelerate C, C++, and Fortran codes on CUDA GPUs and OpenCL devices. They look for people who believe in their products and want to help make them better.</p>
<p>See their <a href="https://www.accelereyes.com/company/careers">jobs-page</a> for more information and how to apply.</p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-05-16/gpu-developers-work-for-streamcomputing-and-friends/">GPU-developers, work for StreamComputing and friends</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-05-16/gpu-developers-work-for-streamcomputing-and-friends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Winning demo of Tokyo Demo Fest 2013 uses OpenCL</title>
		<link>http://streamcomputing.eu/blog/2013-05-15/winning-demo-of-tokyo-demo-fest-2013-uses-opencl/</link>
		<comments>http://streamcomputing.eu/blog/2013-05-15/winning-demo-of-tokyo-demo-fest-2013-uses-opencl/#comments</comments>
		<pubDate>Wed, 15 May 2013 16:59:08 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6425</guid>
		<description><![CDATA[<p>The Tokyo Demo Fest 2013 is one of the many demo-parties around the globe. At such parties is where great programmers meet great artists and show off what came out of their collaborations. The winner of this year used OpenCL to compute real-time procedurally generated geometries. For the rest C++, OpenGL and Gamemonkey Script was [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-05-15/winning-demo-of-tokyo-demo-fest-2013-uses-opencl/">Winning demo of Tokyo Demo Fest 2013 uses OpenCL</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://tokyo-demo-fest.jpn.org/2013/?lang=en">Tokyo Demo Fest 2013</a> is one of the many demo-parties around the globe. At such parties is where great programmers meet great artists and show off what came out of their collaborations.</p>
<p>The winner of this year used OpenCL to compute real-time procedurally generated geometries. For the rest C++, OpenGL and Gamemonkey Script was used.</p>
<p><iframe src="http://player.vimeo.com/video/59398253" width="630" height="354" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>Tech features: <a href="http://www.cs.ubc.ca/%7Erbridson/docs/bridson-siggraph2007-curlnoise.pdf">curl noise</a>, volumetric textures, Perlin noise, mesh deformations, HDR/bloom, film grain, fractals, Hermite splines, <a href="http://sole.github.com/tween.js/examples/03_graphs.html">Tweens</a> and quaternion iridescent particles.</p>
<p>The creator, Tokyo-based <a href="https://twitter.com/eddietree">Eddie Lee</a>, has done more projects &#8211; be sure to <a href="http://illogictree.com/blog/home/">visit his homepage</a>. I hope more demosceners start using the power of OpenCL to get more out of their demo&#8217;s.</p>
<p><em>Do you see where below kernel is used? Hint: check the other videos of Eddie.<br />
</em></p>
<blockquote>
<pre>__kernel void curlnel( 
                      __read_only image3d_t volume,  
                      sampler_t volumeSampler,  
                      __global float4 *output,  
                      float speed 
                      ) 
{ 
    uint index = get_global_id(0); 
    uint numParticles = get_global_size(0); 
    float indexNormalized = (float)index/numParticles; 

    // read from 3D texture 
    float4 vertData = output[index]; 

    float3 samplePos = vertData.s012; 
    samplePos = samplePos+(float3)(0.5f); 

    float4 voxel = (read_imagef(volume, volumeSampler, 
                   (float4)(samplePos,1.0f))); 

    vertData.s012 += voxel.xyz*speed; 

    output[index] = vertData; 
}</pre>
</blockquote>
<p>According to GPUVerify (see previous post) the line starting with &#8220;float4 voxel&#8221; has an error.</p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-05-15/winning-demo-of-tokyo-demo-fest-2013-uses-opencl/">Winning demo of Tokyo Demo Fest 2013 uses OpenCL</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-05-15/winning-demo-of-tokyo-demo-fest-2013-uses-opencl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verify your OpenCL kernel online</title>
		<link>http://streamcomputing.eu/blog/2013-05-13/verify-your-opencl-kernel-online/</link>
		<comments>http://streamcomputing.eu/blog/2013-05-13/verify-your-opencl-kernel-online/#comments</comments>
		<pubDate>Mon, 13 May 2013 19:30:13 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6412</guid>
		<description><![CDATA[<p>GPUVerify is a tool for formal analysis of GPU kernels written in OpenCL and CUDA. The tool can prove that kernels are free from certain types of defect, such as data races and bugs. This is quite useful feedback for any GPU-programmer. Below you find a online version of the tool (please don&#8217;t break it!). [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-05-13/verify-your-opencl-kernel-online/">Verify your OpenCL kernel online</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-6414" alt="gpuverify" src="http://streamcomputing.eu/wp-content/uploads/2013/05/gpuverify.jpg" width="182" height="182" />GPUVerify is a tool for formal analysis of GPU kernels written in OpenCL and CUDA. The tool can prove that kernels are free from certain types of defect, such as data races and bugs. This is quite useful feedback for any GPU-programmer.</p>
<p>Below you find a online version of the tool (<em>please don&#8217;t break it!</em>). Play around and test your kernels. Currently it is limited to OpenCL-kernels. Be aware the number of groups is different from global worksize.</p>
<p>For demo-purposes some values have been pre-filled with a simple kernel &#8211; press &#8220;Check my OpenCL kernel&#8221; to find the results. Did you expect this from this kernel? Can you explain the result?</p>
<p>After the LEAP-conference I&#8217;ll extend this article &#8211; till then I&#8217;m too time-limited. For now I wanted to share the online version with you, especially with the people who will attend the <a href="http://leapconf.com/attend/gpu-kernels-tutorial/">tutorial</a> at LEAP. Be sure to check out the GPUVerify <a href="http://multicore.doc.ic.ac.uk/tools/GPUVerify/">website</a> and <a href="http://www.doc.ic.ac.uk/~afd/papers/pdfs/2012/OOPSLA.pdf">paper</a> to learn more about this fantastic tool!<span id="more-6412"></span></p>
<p><iframe src="http://tools.streamcomputing.eu/GPUVerify/" height="800" width="100%" frameborder="0" marginwidth="5" marginheight="5" scrolling="auto"></iframe></p>
<p>&nbsp;</p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-05-13/verify-your-opencl-kernel-online/">Verify your OpenCL kernel online</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-05-13/verify-your-opencl-kernel-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>21-23 August: OpenCL Training London</title>
		<link>http://streamcomputing.eu/blog/2013-05-13/21-23-august-opencl-training-london/</link>
		<comments>http://streamcomputing.eu/blog/2013-05-13/21-23-august-opencl-training-london/#comments</comments>
		<pubDate>Mon, 13 May 2013 16:10:05 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6403</guid>
		<description><![CDATA[<p>From 21 to 23 August StreamComputing will give a 3-day training in OpenCL. A separate ticket for only the first day can be bought, as then will be a crash-course into OpenCL. Module basics. The second and third day will all about parallel-algorithm design, optimisation and error-handling. Module optimisation with several new subjects added. The [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-05-13/21-23-august-opencl-training-london/">21-23 August: OpenCL Training London</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>From 21 to 23 August StreamComputing will give a 3-day training in OpenCL.</p>
<p>A separate ticket for only the first day can be bought, as then will be a crash-course into OpenCL. Module <a href="http://streamcomputing.eu/training/training-modules/opencl-and-gpgpu-basics/">basics</a>.</p>
<p>The second and third day will all about parallel-algorithm design, optimisation and error-handling. Module <a href="http://streamcomputing.eu/training/training-modules/architectures-optimisation/">optimisation</a> with several new subjects added.</p>
<p>The afternoon of the third day is reserved for special subjects, as requested by the attendees.</p>
<p><strong>If you are at LEAP, wait for the promotional code you get there.</strong></p>
<div style="width: 100%; text-align: left;"><iframe src="http://www.eventbrite.com/tickets-external?eid=6666691253&amp;ref=etckt&amp;v=2" height="325" width="100%" frameborder="0" marginwidth="5" marginheight="5" scrolling="auto"></iframe></p>
<div style="font-family: Helvetica, Arial; font-size: 10px; padding: 5px 0 5px; margin: 2px; width: 100%; text-align: left;"><a style="color: #ddd; text-decoration: none;" href="http://www.eventbrite.com/r/etckt" target="_blank">Online Ticketing</a><span style="color: #ddd;"> for </span><a style="color: #ddd; text-decoration: none;" href="http://opencl-london.eventbrite.com?ref=etckt" target="_blank">3 day OpenCL-training London</a> <span style="color: #ddd;">powered by</span> <a style="color: #ddd; text-decoration: none;" href="http://www.eventbrite.com?ref=etckt" target="_blank">Eventbrite</a></div>
</div>
<p>More detailed information is coming soon.</p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-05-13/21-23-august-opencl-training-london/">21-23 August: OpenCL Training London</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-05-13/21-23-august-opencl-training-london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCL 1.2 error codes</title>
		<link>http://streamcomputing.eu/blog/2013-04-28/opencl-1-2-error-codes/</link>
		<comments>http://streamcomputing.eu/blog/2013-04-28/opencl-1-2-error-codes/#comments</comments>
		<pubDate>Sun, 28 Apr 2013 16:49:01 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6340</guid>
		<description><![CDATA[<p>Knowing all errors by heart is good for quick programming, but not always the best option. Therefore I started to create a full list with extra info, taken from cl.h and the reference documentation. The problem with many error-codes is that they are sometimes context-dependent and then become quite useless in helping the programmer out. [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-04-28/opencl-1-2-error-codes/">OpenCL 1.2 error codes</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<div id="attachment_6374" class="wp-caption alignright" style="width: 310px"><a href="http://www.youtube.com/watch?v=2n0lL0vFvcg"><img class="size-medium wp-image-6374" alt="computer-says-no" src="http://streamcomputing.eu/wp-content/uploads/2013/04/computer-says-no-300x270.jpg" width="300" height="270" /></a><p class="wp-caption-text">Little Britain: &#8220;Compu&#8217;er says no&#8221;. (links to Youtube movie)</p></div>
<p>Knowing all errors by heart is good for quick programming, but not always the best option. Therefore I started to create a full list with extra info, taken from cl.h and the reference documentation.</p>
<p>The problem with many error-codes is that they are sometimes context-dependent and then become quite useless in helping the programmer out. Also some drivers return different error-codes. Notice also that different errors are given per OpenCL-version for the same function. If you find problems, help make OpenCL better and <a href="http://streamcomputing.eu/knowledge/for-developers/">give feedback</a>.</p>
<p>Want it on your wall? You can easily copy these two tables into Excel or alike software and print it out.</p>
<h2><span id="more-6340"></span>Run-time and JIT Compiler Errors (driver-dependent)</h2>
<style><!--
TABLE,THEAD,TBODY,TFOOT,TR,TH,TD { font-family:"Arial"; font-size:x-small; border: 1px dotted; }
--></style>
<table border="0" cellspacing="0">
<colgroup width="42"></colgroup>
<colgroup width="375"></colgroup>
<colgroup width="179"></colgroup>
<colgroup width="552"></colgroup>
<tbody>
<tr>
<td align="LEFT" height="17"><b><i><span style="font-family: Times New Roman;">Code</span></i></b></td>
<td align="LEFT"><b><i><span style="font-family: Times New Roman;">OpenCL Error Flag</span></i></b></td>
<td align="LEFT"><b><i><span style="font-family: Times New Roman;">Function(s)</span></i></b></td>
<td align="LEFT"><b><i><span style="font-family: Times New Roman;">Description</span></i></b></td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">0</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_SUCCESS</span></td>
<td align="LEFT"></td>
<td align="LEFT">The sweet spot.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-1</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_DEVICE_NOT_FOUND</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">clGetDeviceIDs</span></td>
<td align="LEFT">if no OpenCL devices that matched device_type were found.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-2</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_DEVICE_NOT_AVAILABLE</span></td>
<td align="LEFT">clCreateContext</td>
<td align="LEFT">if a device in devices is currently not available even though the device was returned by clGetDeviceIDs.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-3</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_COMPILER_NOT_AVAILABLE</span></td>
<td align="LEFT">clBuildProgram</td>
<td align="LEFT">if program is created with clCreateProgramWithSource and a compiler is not available i.e. CL_DEVICE_COMPILER_AVAILABLE specified in the table of OpenCL Device Queries for clGetDeviceInfo is set to CL_FALSE.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-4</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_MEM_OBJECT_ALLOCATION_FAILURE</span></td>
<td align="LEFT"></td>
<td align="LEFT">if there is a failure to allocate memory for buffer object.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-5</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_OUT_OF_RESOURCES</span></td>
<td align="LEFT"></td>
<td align="LEFT">if there is a failure to allocate resources required by the OpenCL implementation on the device.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-6</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_OUT_OF_HOST_MEMORY</span></td>
<td align="LEFT"></td>
<td align="LEFT">if there is a failure to allocate resources required by the OpenCL implementation on the host.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-7</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_PROFILING_INFO_NOT_AVAILABLE</span></td>
<td align="LEFT">clGetEventProfilingInfo</td>
<td align="LEFT">if the CL_QUEUE_PROFILING_ENABLE flag is not set for the command-queue, if the execution status of the command identified by event is not CL_COMPLETE or if event is a user event object.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-8</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_MEM_COPY_OVERLAP</span></td>
<td align="LEFT">clEnqueueCopyBuffer, clEnqueueCopyBufferRect, clEnqueueCopyImage</td>
<td align="LEFT">if src_buffer and dst_buffer are the same buffer or subbuffer object and the source and destination regions overlap or if src_buffer and dst_buffer are different sub-buffers of the same associated buffer object and they overlap. The regions overlap if src_offset ≤ to dst_offset ≤ to src_offset + size &#8211; 1, or if dst_offset ≤ to src_offset ≤ to dst_offset + size &#8211; 1.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-9</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_IMAGE_FORMAT_MISMATCH</span></td>
<td align="LEFT">clEnqueueCopyImage</td>
<td align="LEFT">if src_image and dst_image do not use the same image format.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-10</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_IMAGE_FORMAT_NOT_SUPPORTED</span></td>
<td align="LEFT">clCreateImage</td>
<td align="LEFT">if the image_format is not supported.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-11</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_BUILD_PROGRAM_FAILURE</span></td>
<td align="LEFT">clBuildProgram</td>
<td align="LEFT">if there is a failure to build the program executable. This error will be returned if clBuildProgram does not return until the build has completed.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-12</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_MAP_FAILURE</span></td>
<td align="LEFT">clEnqueueMapBuffer, clEnqueueMapImage</td>
<td align="LEFT"> if there is a failure to map the requested region into the host address space. This error cannot occur for image objects created with CL_MEM_USE_HOST_PTR or CL_MEM_ALLOC_HOST_PTR.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-13</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_MISALIGNED_SUB_BUFFER_OFFSET</span></td>
<td align="LEFT"></td>
<td align="LEFT">if a sub-buffer object is specified as the value for an argument that is a buffer object and the offset specified when the sub-buffer object is created is not aligned to CL_DEVICE_MEM_BASE_ADDR_ALIGN value for device associated with queue.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-14</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST</span></td>
<td align="LEFT"></td>
<td align="LEFT">if the execution status of any of the events in event_list is a negative integer value.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-15</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_COMPILE_PROGRAM_FAILURE</span></td>
<td align="LEFT">clCompileProgram</td>
<td align="LEFT">if there is a failure to compile the program source. This error will be returned if clCompileProgram does not return until the compile has completed.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-16</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_LINKER_NOT_AVAILABLE</span></td>
<td align="LEFT">clLinkProgram</td>
<td align="LEFT">if a linker is not available i.e. CL_DEVICE_LINKER_AVAILABLE specified in the table of allowed values for param_name for clGetDeviceInfo is set to CL_FALSE.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-17</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_LINK_PROGRAM_FAILURE</span></td>
<td align="LEFT">clLinkProgram</td>
<td align="LEFT">if there is a failure to link the compiled binaries and/or libraries.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-18</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_DEVICE_PARTITION_FAILED</span></td>
<td align="LEFT">clCreateSubDevices</td>
<td align="LEFT"> if the partition name is supported by the implementation but in_device could not be further partitioned.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-19</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_KERNEL_ARG_INFO_NOT_AVAILABLE</span></td>
<td align="LEFT">clGetKernelArgInfo</td>
<td align="LEFT">if the argument information is not available for kernel.</td>
</tr>
</tbody>
</table>
<p>The last four (-16 till -19) are new in OpenCL 1.2.</p>
<h2>Compile-time Errors (driver-independent)</h2>
<table border="0" cellspacing="0">
<colgroup width="42"></colgroup>
<colgroup width="375"></colgroup>
<colgroup width="179"></colgroup>
<colgroup width="552"></colgroup>
<tbody>
<tr>
<td align="LEFT" height="17"><b><i><span style="font-family: Times New Roman;">Code</span></i></b></td>
<td align="LEFT"><b><i><span style="font-family: Times New Roman;">OpenCL Error Flag</span></i></b></td>
<td align="LEFT"><b><i><span style="font-family: Times New Roman;">Function(s)</span></i></b></td>
<td align="LEFT"><b><i><span style="font-family: Times New Roman;">Description</span></i></b></td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-30</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_VALUE</span></td>
<td align="LEFT">clGetDeviceIDs, clCreateContext</td>
<td align="LEFT">This depends on the function: two or more coupled parameters had errors.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-31</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_DEVICE_TYPE</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">clGetDeviceIDs</span></td>
<td align="LEFT">if an invalid device_type is given</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-32</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_PLATFORM</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">clGetDeviceIDs</span></td>
<td align="LEFT">if an invalid platform was given</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-33</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_DEVICE</span></td>
<td align="LEFT">clCreateContext, clBuildProgram</td>
<td align="LEFT">if devices contains an invalid device or are not associated with the specified platform.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-34</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_CONTEXT</span></td>
<td align="LEFT"></td>
<td align="LEFT">if context is not a valid context.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-35</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_QUEUE_PROPERTIES</span></td>
<td align="LEFT">clCreateCommandQueue</td>
<td align="LEFT">if specified command-queue-properties are valid but are not supported by the device.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-36</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_COMMAND_QUEUE</span></td>
<td align="LEFT"></td>
<td align="LEFT">if <code>command_queue</code> is not a valid command-queue.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-39</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_HOST_PTR</span></td>
<td align="LEFT">clCreateImage, clCreateBuffer</td>
<td align="LEFT">This flag is valid only if host_ptr is not NULL. If specified, it indicates that the application wants the OpenCL implementation to allocate memory for the memory object and copy the data from memory referenced by host_ptr.CL_MEM_COPY_HOST_PTR and CL_MEM_USE_HOST_PTR are mutually exclusive.CL_MEM_COPY_HOST_PTR can be used with CL_MEM_ALLOC_HOST_PTR to initialize the contents of the cl_mem object allocated using host-accessible (e.g. PCIe) memory.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-38</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_MEM_OBJECT</span></td>
<td align="LEFT"></td>
<td align="LEFT">if memobj is not a valid OpenCL memory object.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-39</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_IMAGE_FORMAT_DESCRIPTOR</span></td>
<td align="LEFT"></td>
<td align="LEFT">if the OpenGL/DirectX texture internal format does not map to a supported OpenCL image format.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-40</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_IMAGE_SIZE</span></td>
<td align="LEFT"></td>
<td align="LEFT">if an image object is specified as an argument value and the image dimensions (image width, height, specified or compute row and/or slice pitch) are not supported by device associated with queue.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-41</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_SAMPLER</span></td>
<td align="LEFT">clGetSamplerInfo, clReleaseSampler, clRetainSampler, clSetKernelArg</td>
<td align="LEFT">if sampler is not a valid sampler object.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-42</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_BINARY</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">clCreateProgramWithBinary, clBuildProgram<br />
</span></td>
<td align="LEFT">The provided binary is unfit for the selected device.<br />
if program is created with clCreateProgramWithBinary and devices listed in device_list do not have a valid program binary loaded.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-43</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_BUILD_OPTIONS</span></td>
<td align="LEFT">clBuildProgram</td>
<td align="LEFT">if the build options specified by options are invalid.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-44</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_PROGRAM</span></td>
<td align="LEFT"></td>
<td align="LEFT">if <code>program</code> is a not a valid program object.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-45</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_PROGRAM_EXECUTABLE</span></td>
<td align="LEFT"></td>
<td align="LEFT">if there is no successfully built program executable available for device associated with command_queue.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-46</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_KERNEL_NAME</span></td>
<td align="LEFT">clCreateKernel</td>
<td align="LEFT">if kernel_name is not found in program.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-47</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_KERNEL_DEFINITION</span></td>
<td align="LEFT">clCreateKernel</td>
<td align="LEFT">if the function definition for __kernel function given by kernel_name such as the number of arguments, the argument types are not the same for all devices for which the program executable has been built.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-48</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_KERNEL</span></td>
<td align="LEFT"></td>
<td align="LEFT">if kernel is not a valid kernel object.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-49</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_ARG_INDEX</span></td>
<td align="LEFT">clSetKernelArg, clGetKernelArgInfo</td>
<td align="LEFT">if arg_index is not a valid argument index.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-50</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_ARG_VALUE</span></td>
<td align="LEFT">clSetKernelArg, clGetKernelArgInfo</td>
<td align="LEFT">if arg_value specified is not a valid value.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-51</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_ARG_SIZE</span></td>
<td align="LEFT">clSetKernelArg</td>
<td align="LEFT">if arg_size does not match the size of the data type for an argument that is not a memory object or if the argument is a memory object and arg_size != sizeof(cl_mem) or if arg_size is zero and the argument is declared with the __local qualifier or if the argument is a sampler and arg_size != sizeof(cl_sampler).</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-52</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_KERNEL_ARGS</span></td>
<td align="LEFT"></td>
<td align="LEFT">if the kernel argument values have not been specified.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-53</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_WORK_DIMENSION</span></td>
<td align="LEFT"></td>
<td align="LEFT">if <code>work_dim</code> is not a valid value (i.e. a value between 1 and 3).</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-54</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_WORK_GROUP_SIZE</span></td>
<td align="LEFT"></td>
<td align="LEFT">if local_work_size is specified and number of work-items specified by global_work_size is not evenly divisable by size of work-group given by local_work_size or does not match the work-group size specified for kernel using the __attribute__ ((reqd_work_group_size(X, Y, Z))) qualifier in program source.if local_work_size is specified and the total number of work-items in the work-group computed as local_work_size[0] *&#8230; local_work_size[work_dim - 1] is greater than the value specified by CL_DEVICE_MAX_WORK_GROUP_SIZE in the table of OpenCL Device Queries for clGetDeviceInfo.if local_work_size is NULL and the __attribute__ ((reqd_work_group_size(X, Y, Z))) qualifier is used to declare the work-group size for kernel in the program source.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-55</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_WORK_ITEM_SIZE</span></td>
<td align="LEFT"></td>
<td align="LEFT">if the number of work-items specified in any of local_work_size[0], &#8230; local_work_size[work_dim - 1] is greater than the corresponding values specified by CL_DEVICE_MAX_WORK_ITEM_SIZES[0], &#8230;. CL_DEVICE_MAX_WORK_ITEM_SIZES[work_dim - 1].</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-56</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_GLOBAL_OFFSET</span></td>
<td align="LEFT"></td>
<td align="LEFT">if the value specified in global_work_size + the corresponding values in global_work_offset for any dimensions is greater than the sizeof(size_t) for the device on which the kernel execution will be enqueued.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-57</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_EVENT_WAIT_LIST</span></td>
<td align="LEFT"></td>
<td align="LEFT">if event_wait_list is NULL and num_events_in_wait_list &gt; 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-58</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_EVENT</span></td>
<td align="LEFT"></td>
<td align="LEFT">if event objects specified in event_list are not valid event objects.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-59</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_OPERATION</span></td>
<td align="LEFT"></td>
<td align="LEFT">if interoperability is specified by setting CL_CONTEXT_ADAPTER_D3D9_KHR, CL_CONTEXT_ADAPTER_D3D9EX_KHR or CL_CONTEXT_ADAPTER_DXVA_KHR to a non-NULL value, and interoperability with another graphics API is also specified. (only if the cl_khr_dx9_media_sharing extension is supported).</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-60</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_GL_OBJECT</span></td>
<td align="LEFT"></td>
<td align="LEFT">if texture is not a GL texture object whose type matches texture_target, if the specified miplevel of texture is not defined, or if the width or height of the specified miplevel is zero.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-61</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_BUFFER_SIZE</span></td>
<td align="LEFT">clCreateBuffer, clCreateSubBuffer</td>
<td align="LEFT">if size is 0.Implementations may return CL_INVALID_BUFFER_SIZE if size is greater than the CL_DEVICE_MAX_MEM_ALLOC_SIZE value specified in the table of allowed values for param_name for clGetDeviceInfo for all devices in context.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-62</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_MIP_LEVEL</span></td>
<td align="LEFT">OpenGL-functions</td>
<td align="LEFT">if miplevel is greater than zero and the OpenGL implementation does not support creating from non-zero mipmap levels.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-63</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_GLOBAL_WORK_SIZE</span></td>
<td align="LEFT"></td>
<td align="LEFT">if global_work_size is NULL, or if any of the values specified in global_work_size[0], &#8230;global_work_size [work_dim - 1] are 0 or exceed the range given by the sizeof(size_t) for the device on which the kernel execution will be enqueued.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-64</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_PROPERTY</span></td>
<td align="LEFT">clCreateContext</td>
<td align="LEFT">Vague error, depends on the function</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-65</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_IMAGE_DESCRIPTOR</span></td>
<td align="LEFT">clCreateImage</td>
<td align="LEFT">if values specified in image_desc are not valid or if image_desc is NULL.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-66</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_COMPILER_OPTIONS</span></td>
<td align="LEFT">clCompileProgram</td>
<td align="LEFT">if the compiler options specified by options are invalid.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-67</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_LINKER_OPTIONS</span></td>
<td align="LEFT">clLinkProgram</td>
<td align="LEFT">if the linker options specified by options are invalid.</td>
</tr>
<tr>
<td align="LEFT" height="17"><span style="font-family: Times New Roman;">-68</span></td>
<td align="LEFT"><span style="font-family: Times New Roman;">CL_INVALID_DEVICE_PARTITION_COUNT</span></td>
<td align="LEFT">clCreateSubDevices</td>
<td align="LEFT">if the partition name specified in properties is CL_DEVICE_PARTITION_BY_COUNTS and the number of sub-devices requested exceeds CL_DEVICE_PARTITION_MAX_SUB_DEVICES or the total number of compute units requested exceeds CL_DEVICE_PARTITION_MAX_COMPUTE_UNITS for in_device, or the number of compute units requested for one or more sub-devices is less than zero or the number of sub-devices requested exceeds CL_DEVICE_PARTITION_MAX_COMPUTE_UNITS for in_device.</td>
</tr>
</tbody>
</table>
<p>The last four (-65 till -68) are new in OpenCL 1.2.</p>
<hr />
<p>Hope you find this useful! Let me know how I could improve this list!</p>
<p>Have this in code-form? Supply a link in comments.</p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-04-28/opencl-1-2-error-codes/">OpenCL 1.2 error codes</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-04-28/opencl-1-2-error-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ERSA-NVIDIA award for &#8220;Best Young Entrepreneur&#8221;</title>
		<link>http://streamcomputing.eu/blog/2013-04-25/ersa-nvidia-award-for-best-young-entrepreneur/</link>
		<comments>http://streamcomputing.eu/blog/2013-04-25/ersa-nvidia-award-for-best-young-entrepreneur/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 17:31:09 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6364</guid>
		<description><![CDATA[<p>StreamComputing supports the ERSA conference, 22-25 July in Las Vegas. At that conference there will be an award given to &#8220;Best Young Entrepreneur&#8221; and I&#8217;d like you to send in a proposal. The winner gets an NVIDIA Tesla K20! Young entrepreneurs and academics with a great product/project are invited to present their solution. As the [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-04-25/ersa-nvidia-award-for-best-young-entrepreneur/">ERSA-NVIDIA award for &#8220;Best Young Entrepreneur&#8221;</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-6365" alt="ersa-logo" src="http://streamcomputing.eu/wp-content/uploads/2013/04/ersa-logo.jpg" width="181" height="231" />StreamComputing supports the <a href="http://ersaconf.org/ersa-news/">ERSA conference</a>, 22-25 July in Las Vegas. At that conference there will be an award given to &#8220;Best Young Entrepreneur&#8221; and I&#8217;d like you to send in a proposal. The winner gets an NVIDIA Tesla K20!</p>
<p>Young entrepreneurs and academics with a great product/project are invited to present their solution. As the event draws around 2000 people, you get the attention needed to show-case your new company or research-group. Your solution does not need to be based on FPGAs or GPUs, as long as Von Neumann&#8217;s architecture is not in it.</p>
<p>Read the information below or directly go to the <a href="http://ersaconf.org/awards/">ERSA-NVIDIA awards-homepage</a>.<br />
<em><strong>&#8220;Von Neumann&#8217;s architecture lasted for 75 years.&#8221;</strong></em><br />
That genius can no longer lead us into the new age of computing that is upon us. This competition seeks to acknowledge those pioneers that are helping to build the new computing landscape&#8221;</p>
<p>Submission of Proposals for ERSA-NVIDIA award Candidates<br />
Deadline: <strong>May 6, 2013</strong><br />
Send proposals to <em>org@ersaconf.org</em></p>
<p>The Award is devoted for entrepreneurs developing tools, advanced technologies and opportunities for supporting applications, both academic and commercial, across broad area of high-performance, embedded systems implemented as multicore systems and reconfigurable heterogeneous parallel processing systems.</p>
<p>The Award Committee includes:</p>
<p>Leading Universities</p>
<ul>
<li> Stanford University, USA, Prof. Michael Flynn</li>
<li> Imperial College London, UK, Prof. Wayne Luk</li>
<li>Karlsruhe Institute of Technology, Germany, Prof. Joerg Henkel</li>
<li>Keio University, Japan, Prof. Hideharu Amano</li>
<li>Shanghai Jiao Tong University, China, Prof. Simon See</li>
</ul>
<p>Leading Companies (tentative list):</p>
<ul>
<li>NVIDIA, Can Ozdoruk, Product Manager</li>
<li>Altera, Steve Casselmanm, Principal Engineer</li>
<li>National Instruments, Hugo Andrade, Principal Architect</li>
</ul>
<p>For more info go to: <a href="http://ersaconf.org/awards/">http://ersaconf.org/awards/</a></p>
<p><strong>If you have any question, just ask them in the comments or send us an email.</strong></p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-04-25/ersa-nvidia-award-for-best-young-entrepreneur/">ERSA-NVIDIA award for &#8220;Best Young Entrepreneur&#8221;</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-04-25/ersa-nvidia-award-for-best-young-entrepreneur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3-5 June: OpenCL Training Amsterdam</title>
		<link>http://streamcomputing.eu/blog/2013-04-25/3-5-june-opencl-training-amsterdam/</link>
		<comments>http://streamcomputing.eu/blog/2013-04-25/3-5-june-opencl-training-amsterdam/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 02:45:06 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6304</guid>
		<description><![CDATA[<p>From 3 to 5 June StreamComputing will give a 3-day course in OpenCL. Here you will learn how to program A separate ticket for only the first day can be bought, as then will be a crash-course into OpenCL. Module basics. The second and third day will all about parallel-algorithm design, optimisation and error-handling. Module [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-04-25/3-5-june-opencl-training-amsterdam/">3-5 June: OpenCL Training Amsterdam</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>From 3 to 5 June StreamComputing will give a 3-day course in OpenCL. Here you will learn how to program</p>
<p>A separate ticket for only the first day can be bought, as then will be a crash-course into OpenCL. Module <a href="http://streamcomputing.eu/training/training-modules/opencl-and-gpgpu-basics/">basics</a>.</p>
<p>The second and third day will all about parallel-algorithm design, optimisation and error-handling. Module <a href="http://streamcomputing.eu/training/training-modules/architectures-optimisation/">optimisation</a> with several new subjects added.</p>
<p>The last part of the third day is reserved for special subjects, as requested by the attendees.</p>
<div style="width: 100%; text-align: left;"><iframe src="http://www.eventbrite.com/tickets-external?eid=3646280122&amp;ref=etckt&amp;v=2" height="292" width="100%" frameborder="0" marginwidth="5" marginheight="5" scrolling="auto"></iframe></p>
<div style="font-family: Helvetica, Arial; font-size: 10px; padding: 5px 0 5px; margin: 2px; width: 100%; text-align: left;"><a style="color: #ddd; text-decoration: none;" href="http://www.eventbrite.com/r/etckt" target="_blank">Online event registration</a><span style="color: #ddd;"> for </span><a style="color: #ddd; text-decoration: none;" href="http://opencltraining.eventbrite.com?ref=etckt" target="_blank">3 day OpenCL-training Amsterdam</a> <span style="color: #ddd;">powered by</span> <a style="color: #ddd; text-decoration: none;" href="http://www.eventbrite.com?ref=etckt" target="_blank">Eventbrite</a></div>
</div>
<p>More detailed information is coming soon.</p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-04-25/3-5-june-opencl-training-amsterdam/">3-5 June: OpenCL Training Amsterdam</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-04-25/3-5-june-opencl-training-amsterdam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scaling mobile GPUs to 1000 GFLOPS</title>
		<link>http://streamcomputing.eu/blog/2013-04-22/scaling-mobile-gpus-to-1000-gflops/</link>
		<comments>http://streamcomputing.eu/blog/2013-04-22/scaling-mobile-gpus-to-1000-gflops/#comments</comments>
		<pubDate>Mon, 22 Apr 2013 19:39:38 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[Imagination Technologies]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Qualcomm]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6313</guid>
		<description><![CDATA[<p>On 20 April there was a discussion between Jan Gray and David Kanter. Jan is a specialist in C++ and FPGAs (twitter, homepage), David a specialist in CPU and GPU architectures (twitter, homepage). Both know their ways well in the field of semiconductors. It is always a joy to follow their short discussions when they happen, [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-04-22/scaling-mobile-gpus-to-1000-gflops/">Scaling mobile GPUs to 1000 GFLOPS</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-6320" alt="arm_mali_cover_151112297646_640x360" src="http://streamcomputing.eu/wp-content/uploads/2013/04/arm_mali_cover_151112297646_640x360-300x168.jpg" width="300" height="168" />On 20 April there was a <a href="https://twitter.com/jangray/status/325783845754523649">discussion</a> between Jan Gray and David Kanter. Jan is a specialist in C++ and FPGAs (<a href="https://twitter.com/jangray/">twitter</a>, <a href="http://www.fpgacpu.org/index.html">homepage</a>), David a specialist in CPU and GPU architectures (<a href="https://twitter.com/TheKanter">twitter</a>, <a href="http://www.realworldtech.com/">homepage</a>). Both know their ways well in the field of semiconductors. It is always a joy to follow their short discussions when they happen, and this one I&#8217;d specially like to share with you.</p>
<blockquote><p><em>OpenCL on ARM: </em>Growth-expectation of GFLOPS/Watt of mobile GPUs exceeds Moore&#8217;s law. That&#8217;s incredible!</p>
<p>Jan Gray: .@OpenCLonARM GFLOPS/W more a factor of almost-over Dennard Scaling. But plenty of waste still to quash. <a href="http://www.fpgacpu.org/papers/Gray_AutumnOfMooresLaw_SingularityUniversity_11-06-23.pdf">http://www.fpgacpu.org/papers/Gray_AutumnOfMooresLaw_SingularityUniversity_11-06-23.pdf</a> …</p>
<p>Jan Gray‏: .@openclonarm Scratch Dennard tweet: reduced capacitance of yet smaller devices shd improve GFLOPS/W even as we approach end of Vdd scaling.</p>
<p>David Kanter: @jangray @OpenCLonARM I think some companies would argue Vdd scaling isn&#8217;t dead&#8230;</p>
<p>Jan Gray: @TheKanter @openclonarm it&#8217;s not dead, but slowing, we&#8217;ve gone from 5V to 1V (25x power savings) and have maybe several hundred mVs to go.</p>
<p>David Kanter: @jangray I reckon we have at least 400mV, so ~2X; slower than ideal, but still significant</p>
<p>Jan Gray: @TheKanter We agree, I think.</p>
<p>David Kanter: @jangray I suspect that if GPU scaling &gt; Moore&#8217;s Law then they are just spending more area or power; like discrete GPUs in the last decade</p>
<p>David Kanter: @jangray also, most positive comment I&#8217;ve heard from industry folks on mobile GPU software and drivers is &#8220;catastrophically terrible&#8221;</p>
<p>Jan Gray: @TheKanter Many ways to reduce power, soup to nuts. For ex HMC DRAM on interposer for lower energy signaling. I&#8217;m sure many tricks to come.</p></blockquote>
<p>In a nutshell all the reasons they think mobile GPUs can outpace Moore&#8217;s law while staying under a certain power-usage.</p>
<p>It needs some background-info, so let&#8217;s start the background of the first tweet, and then explain what has been said.<span id="more-6313"></span></p>
<h1>More than Moore for mobile GPUs</h1>
<p>Requirements for Mobile GPUs were not really high until the iPhone and Android came along. Of course there was demand, but not from such a big market. This caused a big push forward of mobile GPUs. The reason it can grow faster than other processors is because there is catching up possible &#8211; at least that is what I picked up in general terms.</p>
<p>For example Imagination Technologies promises a lot with <a href="http://www.imgtec.com/powervr/sgx_series6.asp">PowerVR series 6</a>: &#8220;<em>With a growing range of cores optimised for either area (maximising GFLOPS/mm2) or performance (maximising GFLOPS/mW), PowerVR Series6 GPUs can deliver 20x or more of the performance of current generation GPU cores targeting comparable markets. This is enabled by an architecture that is around 5x more efficient than previous generations. PowerVR Series6 GPU cores are designed to offer computing performance exceeding 100GFLOPS (gigaFLOPS) and reaching the TFLOPS (teraFLOPS) range enabling high-level graphics performance from mobile through to high-end compute and graphics solutions&#8221;</em>. Currently they are around 70 GFLOPS and 1 TFLOPS should be reached before 2020 when they have the same pace in advancements as desktop GPUs. But they claim the reach it with Series 6!</p>
<p>What do Jan and David have to say about it?</p>
<h1>Dennard&#8217;s scaling</h1>
<p>Jan takes back this reason a tweet later, but it&#8217;s an interesting rule anyway:</p>
<div id="bodyContent">
<div dir="ltr" lang="en">
<p><em>Dennard’s scaling rules observe that voltage and current should be proportional to the linear dimensions of a transistor, implying that power consumption (the product of voltage and current) will be proportional to the area of a transistor. This property implies that shrunk MOSFETs will consume less power, and forms the basis of Moore&#8217;s Law. (<a href="http://nick-black.com/dankwiki/index.php/Dennard_Scaling">source</a>)</em></p>
<p>The projected end with current technologies (Silicon) is projected between 10 and 7 nm. See <a href="http://streamcomputing.eu/blog/2011-04-26/molybdenite-and-graphene-to-the-helping-hand/">molybdenite and graphene to the helping hand</a> for what can come as an alternative.</p>
<p>Current mobile GPUs are baked on 32 and even 45 nm, but soon go under 25 nm. But this does not give the mobile GPUs an advantage over desktop GPUs.</p>
<h1>Voltage scaling</h1>
<p>Jan talks about &#8220;reduced capacitance of yet smaller devices&#8221; and V<sub>dd</sub>. Smaller chip-sizes make is possible to work with less volts. V<sub>dd</sub> is the voltage hooked up to the chip from outside. As explained in the tweets, this has gone down over the years.</p>
<p>Check out this <a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-012-microelectronic-devices-and-circuits-fall-2009/lecture-notes/MIT6_012F09_lec16_scaling.pdf">PDF</a> of OCW-course &#8220;<a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-012-microelectronic-devices-and-circuits-fall-2009/">Microelectronic Devices and Circuits</a>&#8221; about scaling to learn more.</p>
<p>Voltage can go down for other processors too.  So not a strong reason why Imagination would go from 70 to 1000 GFLOPS, while desktop GPUs go from around 4000 to around 4000. But as mobile processors tend to be smaller, there is some advantage.</p>
<p>A side-note: one other explanations is that the power-usage maximum will be loosened. Then the 1 TFLOPS GPU would not give maximum performance when on battery power.</p>
<h1>Area Scaling</h1>
<p>Years ago ARM&#8217;s chips were under 10 mm<sup>2</sup> (!), GPUs larger. Intel&#8217;s CPUs have been over 100 mm2 for years, even with shrinking die-size.</p>
<p>Mobile chips therefore had an advantage over X86, but now they are getting less advantage with die-sizes over 100 mm<sup>2</sup>. See below for what CPU+GPU in the X86-world take for an area.</p>
<table width="575" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td colspan="6" align="left">Trinity Physical Comparison (source: <a href="http://www.anandtech.com/show/6332/amd-trinity-a10-5800k-a8-5600k-review-part-1">Anandtech</a>)</td>
</tr>
<tr>
<td width="120"></td>
<td align="center" valign="middle" width="85">Manufacturing Process</td>
<td align="center" valign="middle" width="85">Die Size</td>
<td align="center" valign="middle" width="85">Transistor Count</td>
</tr>
<tr>
<td>AMD Llano</td>
<td align="center" valign="middle">32 nm</td>
<td align="center" valign="middle">228 mm<sup>2</sup></td>
<td align="center" valign="middle">1.178B</td>
</tr>
<tr>
<td>AMD Trinity</td>
<td align="center" valign="middle">32 nm</td>
<td align="center" valign="middle">246 mm<sup>2</sup></td>
<td align="center" valign="middle">1.303B</td>
</tr>
<tr>
<td>Intel Sandy Bridge (4C)</td>
<td align="center" valign="middle">32 nm</td>
<td align="center" valign="middle">216 mm<sup>2</sup></td>
<td align="center" valign="middle">1.16B</td>
</tr>
<tr>
<td>Intel Ivy Bridge (4C)</td>
<td align="center" valign="middle">22nm</td>
<td align="center" valign="middle">160mm<sup>2</sup></td>
<td align="center" valign="middle">1.4B</td>
</tr>
</tbody>
</table>
<p>Seems here is the most stretch, but also has its limits due to the power-usage. As larger chips use more power, it still has its limits.</p>
<h1>&#8220;Many tricks to come&#8221;</h1>
<p>Jan mentions tricks are also helping, mentioning a memory-transfer optimisation. ARM and Imagination are know to have a lot of expertise and IP in SOC-optimisations, low-power and memory-transfers, where AMD and Intel just have started with.</p>
<p>In the below graph (taken from the article &#8220;<a href="http://streamcomputing.eu/blog/2012-08-27/processors-that-can-do-20-gflops-watt/">Processors that can do 20+ GFLOPS per Watt</a>&#8220;) you see the desktop GPUs (yellow) and the mobile processors (light-blue). The empty area at the upper-right is where most interest is. Could they end up right of the desktop GPUs? Question is still how big that advantage is.</p>
<p><img alt="gflops_watt" src="http://streamcomputing.eu/wp-content/uploads/2012/08/gflops_watt.png" width="563" height="322" /></p>
<p>One of the reasons to co-organise the <a href="http://leapconf.com/">LEAP-conference</a> is exactly to get answers to that one question. <em>Why would vendors of low-power processors outpace both Moore&#8217;s law and desktop GPUs?</em> Jan and David shared their opinion, but I&#8217;d like to hear form the manufacturers themselves.</p>
<p>You are very welcome to give your view on this in the comments. And if you found interesting articles, (partly) answering this question, please share them with the other readers.</p>
<p><strong>Join the discussion on twitter about mobile GPUs reaching 1 TFLOPS: <a href="https://twitter.com/search?q=%23terascale">#terascale</a>.</strong></p>
</div>
</div>
<p>The post <a href="http://streamcomputing.eu/blog/2013-04-22/scaling-mobile-gpus-to-1000-gflops/">Scaling mobile GPUs to 1000 GFLOPS</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-04-22/scaling-mobile-gpus-to-1000-gflops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Q&amp;A with Adrien Plagnol and Frédéric Langlade-Bellone on WebCL</title>
		<link>http://streamcomputing.eu/blog/2013-04-03/qa-with-adrien-plagnol-and-frederic-langlade-bellone-on-webcl/</link>
		<comments>http://streamcomputing.eu/blog/2013-04-03/qa-with-adrien-plagnol-and-frederic-langlade-bellone-on-webcl/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 08:25:07 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Q&A]]></category>

		<guid isPermaLink="false">http://www.streamcomputing.eu/?p=4253</guid>
		<description><![CDATA[<p>WebCL is a great technique to have compute-power in the browser. After WebGL which gives high-end graphics in the browser, this is a logical step on the road towards the browser-only operating system (like Chrome OS, but more will follow). Another way to look at technologies like WebCL, is that it makes it possible to [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-04-03/qa-with-adrien-plagnol-and-frederic-langlade-bellone-on-webcl/">Q&#038;A with Adrien Plagnol and Frédéric Langlade-Bellone on WebCL</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-6280" alt="WebCL_300" src="http://streamcomputing.eu/wp-content/uploads/2013/04/WebCL_300.jpg" width="300" height="135" />WebCL is a great technique to have compute-power in the browser. After WebGL which gives high-end graphics in the browser, this is a logical step on the road towards the browser-only operating system (like Chrome OS, but more will follow).</p>
<p>Another way to look at technologies like WebCL, is that it makes it possible to lift the standard base from the OS to the browser. If you remember the trial of Microsoft&#8217;s integration of Internet Explorer, the focus was on the OS needing the browser for working well. Now it is the other way around, but it can be any OS. This is because the push doesn&#8217;t come from below, but from above.</p>
<p>Last year two guys from Lyon (South-France) got quite some attention, as they wrote a WebCL-plugin. Their names: Adrien Plagnol and Frédéric Langlade-Bellone. Below you&#8217;ll find a Q&amp;A with them on WebCL. Enjoy!<span id="more-4253"></span></p>
<h2>Adrien Plagnol</h2>
<p>I&#8217;m 25 and I live in Lyon, France, I&#8217;m currently employed as a Java engineer in a big IT company. I got involved in the Google Summer of Code in 2012 during which I worked on integrating WebCL in Firefox&#8217;s core. I am now following the latest advances on the project as a spectator as my current occupation is quite time consuming !  <em>(photo on the left)</em></p>
<h2><img class="size-medium wp-image-6251 alignleft" alt="adrien" src="http://streamcomputing.eu/wp-content/uploads/2012/07/adrien-296x300.jpg" width="296" height="300" /> <img class="size-medium wp-image-6252 alignright" alt="frederic" src="http://streamcomputing.eu/wp-content/uploads/2012/07/frederic-300x300.jpeg" width="300" height="300" /></h2>
<h2>Frédéric Langlade-Bellone</h2>
<p>I did my bachelor degree in Montpellier then I moved to Lyon where I was granted my Master’s degree in computer graphics at the end of last year. I now work in the same company as Adrien, as a GIS (Geographic Information System) engineer. I discovered WebGL and WebCL during my studies, during which I worked on an online 3D GIS-data viewer and on some WebCL demos, with the help of Fabien Cellier, the PhD student who is working on WebCL and who was supervising me. Nowadays, I do work on some WebCL projects at a slow-paced rhythm. <em>(photo on the right)</em></p>
<h1>The Q&amp;A</h1>
<h2>WebCL introduction</h2>
<p><strong>Vincent Hindriksen (</strong><strong>VH</strong>): Could you describe what WebCL actually is ?</p>
<p><strong>Adrien Plagnol (</strong><strong>AP</strong>): WebCL is a binding of the desktop OpenCL library, but in a Javascript-fashioned way. It is really close to the C++ wrap<strong></strong>per in that it is object oriented. It is able to manage standard Javascript types, including TypedArray (which were introduced for WebGL) and DOM events. As the desktop version includes OpenGL interactions, WebCL is also able to use WebGL buffers, even if this feature is described as optional in the specs.</p>
<p><strong>Frédéric Langlade-Bellone (</strong><strong>FLB</strong>): We were both introduced to OpenCL and WebCL by Fabien Cellier, which was one of the early developers of WebCL and who is now part of the Khronos Group that standardize WebCL as a non-voting member.</p>
<p>&#8211;<br />
<strong></strong></p>
<p><strong>VH</strong>: There is not one project, but many. And they are not compatible. In the beginning it was Nokia&#8217;s implementation which got a lot towards &#8220;the standard&#8221;, but Khronos initiated a standardisation of WebCL. Could you tell something about the standardisation and your view on it?</p>
<p><strong>FLB</strong>: The standardization already had good effects on the Samsung implementation of WebCL, as in the beginning it was working but the API was mainly a litteral conversion of the C API that did not take into account specificities of JavaScript.</p>
<p>The new version is based on the current draft of Khronos WebCL and is way easier to use in a JS environment. Moreover, even if Nokia&#8217;s implementation is quite easy to setup, it does not have CL/GL interaction. This interaction is quite useful as it allows you to use the same buffers for WebCL and WebGL, saving simplicity of code and global running speed. The standard will allow the developer to know whether the current implementation has CL/GL interaction, independently of a specific implementation. Nowadays, the three know implementations (Nokia, Mozilla and Samsung) are evolving to get the same API, which for me is the first step of WebCL becoming available for everyone.</p>
<p><em>[VH: see also <a href="https://github.com/ParapluieDotOrg/CommonWebCL">https://github.com/ParapluieDotOrg/CommonWebCL</a> by Frédéric for an effort to unite the various flavours]</em></p>
<p>&#8211;</p>
<p><strong>VH</strong>: What is the current state of WebCL?</p>
<p><strong>AP</strong>: WebCL is currently being worked on at Khronos and a public working draft is available at <a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html">https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/index.html</a>. Chrome, Safari and Firefox already have an available WebCL implementation, but the API is different for each one.</p>
<p>&#8211;</p>
<p><strong>VH</strong>: In what way could you compare WebCL to its older brother WebGL? Will WebCL walk the same route?</p>
<p><strong>FLB</strong>: I think it will be way harder for WebCL to become as spread as WebGL. Our days everyone can understand why we need OpenGL in our browsers, mainly because it&#8217;s visual. But OpenCL is not visual, and it needs more work to be understood, so I don&#8217;t think the WebCL community can be as big as the WebGL community, and that means that its integration in web browsers won&#8217;t be set as a priority in the years to come.</p>
<h2>Demo Time</h2>
<p><strong>VH</strong>: Could you show off a demo made by you?</p>
<p><strong>AP</strong>: I made an opensource bitcoin miner based on the WebCL Firefox API. It is available on Bitbucket : <a href="https://bitbucket.org/dalsh/jsoclbm">https://bitbucket.org/dalsh/jsoclbm</a> (live demo is available at <a href="http://jsoclbm.parapluie.org/">http://jsoclbm.parapluie.org/</a> for the few people who has a WebCL-enabled Firefox)</p>
<p><strong>FLB</strong>: I made a demo based on simple physics interactions between particles and basic objects. You can watch it here :</p>
<p><a href="https://www.youtube.com/watch?v=tdqBUCvxd4w&amp;feature=g-upl">https://www.youtube.com/watch?v=tdqBUCvxd4w&amp;feature=g-upl</a></p>
<p>It is just meant to be an example of what can be done using WebCL, but it is not at all a technical demonstration. The idea is just to show that WebCL development is quite easy. Source code is available at <a href="https://github.com/ParapluieDotOrg/PartyingParticles">https://github.com/ParapluieDotOrg/PartyingParticles</a>.</p>
<p>&#8211;</p>
<p><strong>VH</strong>: What is your favourite demo made by others?</p>
<p><strong>FLB</strong>: It&#8217;s the GPU-based image editor made by Nokia. Actually, I haven&#8217;t played with it for a long time, but to me it is one of the best example of what WebCL could be used for.</p>
<h2>Application Areas</h2>
<p><strong>Liad Weinberger (LB)</strong>: Will WebCL be used for more than games and Bitcoins?</p>
<p><strong>AP</strong>: WebCL may prove useful for image processing, distributed computing ( like the *@home projects ), etc… For every OpenCL usage we can imagine a WebCL equivalent in a web browser, providing lightweight client advantages and in some cases social interactions (ie. community based image editing, video/audio encoding&#8230; ).</p>
<h2>Security</h2>
<p><strong>VH</strong>: What would be the potential dangers of the web due to WebGl and WebCL? Stealing of processor-time is much more doable than with just JavaScript.</p>
<p><strong>FLB</strong>: I do know that people are working on the security issues for WebCL, correcting some issues related to privacy but also on the way WebCL will use your processor. Something more reliable than the Windows watchdog, which considers the GPU has crashed when it does not respond for more than two seconds. Moreover, we can imagine asking the user the permission to execute a processor-intensive process, in the same way that it is done for geolocalization.</p>
<p>&#8211;</p>
<p><strong>VH</strong>: A possible side-effect. Can WebCL/GL be used to determine the hardware has, without user-interaction? And if so, is this handy for game-developers and computer-shops to propose compatible games and computer-upgrades?</p>
<p><strong>AP</strong>: We never really thought about that kind of use but it is true that OpenCL is able to provide hardware discovery features which would be built-in the browser. This would allow a game company to inform the user if its GPU (at least) is powerful enough to run a game directly from the browser without installing any plugins or needing IT knowledge.</p>
<p><strong>FLB</strong>: Moreover it could also allow a company to get statistics about hardware configurations of potential game customers, which would help them into optimizing games to the most common configurations.</p>
<h2>The OpenCL problems</h2>
<p><strong>VH</strong>: OpenCL gets much more standardised into libraries and reachable in higher level code. Will WebCL do the same? And if so, how do you see these libraries and higher level programming concepts will get into WebCL?</p>
<p><strong>FLB</strong>: I can easily imagine a library that would provide some common algorithms with multiple implementations (WebCL, WebGL using framebuffers, JS), choosing the most powerful one depending on the user hardware : JavaScript is a great langage when it comes to this kind of abstraction For libraries concerning WebCL itself, it would certainly need libraries to provide frequently used routines in the CL language. We can think of a core library, that just provide a way to load third-party CL functions into an already existing CL program. Other libraries would just have to plug onto this library to provide new functions. However, apart from these points, WebCL won&#8217;t need a lot of specific library, as the idea for me is that WebCL integration should be done in most already existing Javascript library : I can&#8217;t wait to see WebCL in bullet.js, for instance.</p>
<p>&#8211;</p>
<p><strong>VH</strong>: A little bit technical. OpenCL is not performance portable. What techniques do you use in WebCL to offer best performance per device? Multi-kernel?</p>
<p><strong>FLB</strong>: Yes multiple kernels is for me the simpliest way to get it working. That&#8217;s another issue that should be resolved by libraries &#8211; seamlessly detecting what can be done using the current device and giving reliable data to know if the program we would like to run won&#8217;t be too intensive for this device. Indeed it is quite easy to write the different kernels, but the difficult part is the detection of which one should be running. Running a small benchmark at the beginning is a useful marker but I don&#8217;t think it should be the only one as it is related to the current state of the computer (powersaving etc&#8230;) but it could also use device informations provided by WebCL.</p>
<p>WebCL could also prove useful in optimizing 3d models on the go based on customer hardware cap<strong></strong>abilities : performance detection could prove handy in that case.<br />
<strong></strong></p>
<h2>The future</h2>
<p><strong>VH</strong>: IE is not the dominant browser anymore, and does not hold back web-innovation as it did for many years. As they did not implement WebGL (yet), what do you think about the influence of IE if it comes to acceptation to WebCL as the GPGPU-standard in the browser?</p>
<p><strong>FLB</strong>: I&#8217;m quite pessimistic on that one. Officially, Microsoft does not want WebGL because of security issues (reading GL buffers filled by a previous website for instance). WebCL has the same issues, and even if most of them can be resolved at middle-term, they will end up finding a new way of rejecting OpenGL and OpenCL based technologies. We should not forget that IE is still used by 1/2 worldwide visitors and I really hope that Microsoft will provide at least alternatives based on DirectX or DirectCompute allowing us to go further with GPU based technologies instead of being always limited by the poor IE support for those.</p>
<p>&#8211;</p>
<p><strong>VH</strong>: say its the end of Q4 2013 &#8211; WebGL and WebCL are in all browsers. How do you think the internet looks like? How would my experience on Wikipedia be? (a broad question, but please answer it in a positive way)</p>
<p><strong>AP</strong>: It won&#8217;t change so much on Wikipedia, except that it might prove useful for live examples ( ie. physic models ). But in a more general way, it will open many new horizons. For instance, high-grade browser games could become a reality. Moreover, this open the doors to smaller projects aiming at a wide audience and using WebCL in a creative manner ( for promotional purpose for instance, as Disney did using WebGL for the Oz movie interactive promotion ).</p>
<p><strong>FLB</strong>: It will also spread the idea that even complex ap<strong></strong>plications can be easily shared as we won&#8217;t need to go through an installation process. One can imagine creating a very specific app and sharing it in the same day with his community, without having to care about specific OSes or platforms.</p>
<h1>Try out WebCL yourself</h1>
<p>Start with an introduction on <a href="http://www.ibiblio.org/e-notes/webcl/webcl.htm">http://www.ibiblio.org/e-notes/webcl/webcl.htm</a> to install WebCL on Firefox. There you&#8217;ll find some demo&#8217;s, but also on <a href="http://webcl.nokiaresearch.com/demos.html">http://webcl.nokiaresearch.com/demos.html</a></p>
<p>Add your favourite demo in the comments, for others to see. Got questions? Just ask.</p>
<p><strong>Like to hear more of what these guys are doing? Follow them on twitter: <a href="https://twitter.com/adrienplagnol">@adrienplagnol</a> &#8211; <a href="https://twitter.com/fredericlb">@fredericlb</a></strong></p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-04-03/qa-with-adrien-plagnol-and-frederic-langlade-bellone-on-webcl/">Q&#038;A with Adrien Plagnol and Frédéric Langlade-Bellone on WebCL</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-04-03/qa-with-adrien-plagnol-and-frederic-langlade-bellone-on-webcl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LEAP-conference call for papers</title>
		<link>http://streamcomputing.eu/blog/2013-02-05/leap-conference-call-for-papers/</link>
		<comments>http://streamcomputing.eu/blog/2013-02-05/leap-conference-call-for-papers/#comments</comments>
		<pubDate>Tue, 05 Feb 2013 14:39:12 +0000</pubDate>
		<dc:creator>Vincent Hindriksen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://streamcomputing.eu/?p=6111</guid>
		<description><![CDATA[<p>Embedded processors always have had the focus on low-energy. Now a combination of Moore&#8217;s law, the frequency-wall and multi-processor developments have made it possible for these processors to compete in completely new market segments. Most notable due to impressive advancements in graphics IP. We are now looking at four groups who are interested in learning [...]</p><p>The post <a href="http://streamcomputing.eu/blog/2013-02-05/leap-conference-call-for-papers/">LEAP-conference call for papers</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></description>
				<content:encoded><![CDATA[<div id="attachment_6112" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-6112" alt="921752_m" src="http://streamcomputing.eu/wp-content/uploads/2013/02/921752_m-300x206.jpg" width="300" height="206" /><p class="wp-caption-text">Building bridges in a new industry</p></div>
<p>Embedded processors always have had the focus on low-energy. Now a combination of Moore&#8217;s law, the frequency-wall and multi-processor developments have made it possible for these processors to compete in completely new market segments. Most notable due to impressive advancements in graphics IP.<br />
We are now looking at four groups who are interested in learning from each other:</p>
<ul>
<li>The embedded processor market</li>
<li>The FPGA market</li>
<li>The HPC and server market</li>
<li>The GPGPU market</li>
</ul>
<p>And answer the question: <em>how can we get more out of low-energy processors by looking at other industries?</em></p>
<p>The goal of the LEAP conference is to bring these three groups together. Creating the windows to each other and paving roads over the newly constructed bridges. This makes it one of its kind. Half of the conference is focused on quality information sharing and the other half on networking. For more information, check the <a href="http://leapconf.com/">website of the LEAP-conference</a>. StreamComputing is a co-organiser.</p>
<p><del><strong>Call for papers is now open!</strong></del><strong> Programme is filled!<br />
</strong></p>
<p><span id="more-6111"></span></p>
<h1>Promotional video</h1>
<p><object id="vp1fPpJn" width="540" height="303" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://static.animoto.com/swf/w.swf?w=swf/vp1&amp;e=1367248923&amp;f=fPpJnofillVG3BJpyEz70w&amp;d=0&amp;m=a&amp;r=360p&amp;volume=100&amp;start_res=360p&amp;i=m&amp;ct=&amp;cu=&amp;asset_domain=s3-p.animoto.com&amp;animoto_domain=animoto.com&amp;options=" /><param name="allowfullscreen" value="true" /><embed id="vp1fPpJn" width="540" height="303" type="application/x-shockwave-flash" src="http://static.animoto.com/swf/w.swf?w=swf/vp1&amp;e=1367248923&amp;f=fPpJnofillVG3BJpyEz70w&amp;d=0&amp;m=a&amp;r=360p&amp;volume=100&amp;start_res=360p&amp;i=m&amp;ct=&amp;cu=&amp;asset_domain=s3-p.animoto.com&amp;animoto_domain=animoto.com&amp;options=" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<h1>Papers</h1>
<p>We&#8217;d like to focus on this new space, as there is so much to learn from each other. A few examples:</p>
<ul>
<li>You are in the group of HPC and have looked into low-energy computing.</li>
<li>You are into GPGPU and have tried GPU-computing on ARM.</li>
<li>You have new insights on FPGA vs GPU, or combined it in reconfigurable GPUs.</li>
<li>You see your paper fit in the below Venn-diagram, Mobile GPUs and ARM64 just being two examples.</li>
</ul>
<p><img class="size-medium wp-image-6113 alignnone" alt="leap-venn" src="http://streamcomputing.eu/wp-content/uploads/2013/02/leap-venn-300x230.png" width="300" height="230" /></p>
<p>Examples of submission topics:</p>
<ul>
<li><strong>Applications</strong>: Computer Vision, Image &amp; Video Processing, Crytography, and more…</li>
<li><strong>Hardware</strong>: The lastest ARM, Mobile GPU, Low-power x86 and FPGA</li>
<li><strong>Software development:</strong> OpenCL, C++ AMP, OpenMP, RenderScript, etc.</li>
<li><strong>Devices</strong>: Mobile phones, tablets, low-power embedded, HPC and server environments</li>
<li>Tips and Techniques for writing portable applications</li>
</ul>
<p>For information can be found on the <a href="http://leapconf.com/present/call-for-papers/">call-for-papers page</a> on the webpage of the LEAP-conference.</p>
<p>If you think your work is of interest for the conference, we&#8217;d kindly ask you to send an abstract. If you have any question, just <a href="mailto:info@streamcomputing.eu">ask</a>.</p>
<p>The post <a href="http://streamcomputing.eu/blog/2013-02-05/leap-conference-call-for-papers/">LEAP-conference call for papers</a> appeared first on <a href="http://streamcomputing.eu">StreamComputing</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://streamcomputing.eu/blog/2013-02-05/leap-conference-call-for-papers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk
Database Caching 97/184 queries in 0.030 seconds using apc
Object Caching 7003/7362 objects using apc

 Served from: streamcomputing.eu @ 2013-05-22 12:31:22 by W3 Total Cache -->