<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://edramatica.com/index.php?action=history&amp;feed=atom&amp;title=OpenCL</id>
	<title>OpenCL - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://edramatica.com/index.php?action=history&amp;feed=atom&amp;title=OpenCL"/>
	<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=OpenCL&amp;action=history"/>
	<updated>2026-05-06T12:19:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://edramatica.com/index.php?title=OpenCL&amp;diff=47834&amp;oldid=prev</id>
		<title>imported&gt;Uberfukken: Uberfukken moved page User:DNJACK/OpenCL to OpenCL</title>
		<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=OpenCL&amp;diff=47834&amp;oldid=prev"/>
		<updated>2019-03-14T00:56:35Z</updated>

		<summary type="html">&lt;p&gt;Uberfukken moved page &lt;a href=&quot;/User:DNJACK/OpenCL&quot; title=&quot;User:DNJACK/OpenCL&quot;&gt;User:DNJACK/OpenCL&lt;/a&gt; to &lt;a href=&quot;/OpenCL&quot; title=&quot;OpenCL&quot;&gt;OpenCL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;So you&amp;#039;ve written your software in [[C]] but it&amp;#039;s still too slow. Your next optimization step is to include [[Assembly| SIMD instructions]] but you are to lazy to learn to do it yourself, or you are looking for an excuse to blow several grands on a graphic card and you hate [[Nvidia]]? OpenCL might be right for you !&lt;br /&gt;
==How it works==&lt;br /&gt;
[[file:opencl_password_cracker.jpg|260px|thumb|1337 haxors can use it to [http://www.geeks3d.com/20121206/a-25-gpu-monster-cracks-passwords-in-opencl crack passwords] ]]&lt;br /&gt;
&lt;br /&gt;
While [[Nvidia]]&amp;#039;s CUDA is made to be used by computer illiterate scientists, OpenCL forces you to tell it exactly what you want, so you&amp;#039;ll need this. Both CUDA and OpenCL are lower-level than [[C]], so you better know what kind of hardware you expect it to run on or check it at runtime and write the code for the different hardware.&lt;br /&gt;
&lt;br /&gt;
# Environment variables are initiated. - This is were the program learn what device will execute the code, like which of your numerous GPU it will use if you are overcompensating for your [[women|lack of dick]], etc...&lt;br /&gt;
# Memory initialization. - If you want to use the GPU, this is where you reserve memory on it. Special allocations also exists for CPU. Can also be done later.&lt;br /&gt;
# Reading and building the program. - The code have to be built at runtime to allow prior code to determine where the kernels will execute.&lt;br /&gt;
# Extracting the kernels. - Getting the different kernels functions from the compiled program.&lt;br /&gt;
# Write data to GPU memory, if program for GPU.&lt;br /&gt;
# Use them! aka enqueue a kernel in a command queue - You didn&amp;#039;t do all that for nothing, didn&amp;#039;t you.&lt;br /&gt;
# Read data from GPU memory if program for GPU, or unmap for CPU.&lt;br /&gt;
# Release Kernels, memory, and environment variables.&lt;br /&gt;
&lt;br /&gt;
==Best Practices==&lt;br /&gt;
&lt;br /&gt;
* Limit data transfers. They take important computer time.&lt;br /&gt;
* 256 work-item per GPU work-group will give good results most of the time.&lt;br /&gt;
* Error-check continuously, or you&amp;#039;ll only get them when freeing memory.&lt;br /&gt;
* Make sure to create a fuckloads of threads. It is normal to sometime have more than one thread per data.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[AMD]]&lt;br /&gt;
* [[Intel]]&lt;br /&gt;
* [[Nvidia]]&lt;br /&gt;
* [[OpenGL]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.khronos.org/opencl/ OpenCL]&lt;br /&gt;
* [http://developer.amd.com/tools-and-sdks/opencl-zone/ OpenCL - AMD]&lt;br /&gt;
* [http://software.intel.com/en-us/intel-opencl OpenCL - Intel]&lt;br /&gt;
* [http://developer.nvidia.com/opencl/ OpenCL - Nvidia]&lt;br /&gt;
&lt;br /&gt;
{{Softwarez}}&lt;br /&gt;
{{haxor}}&lt;/div&gt;</summary>
		<author><name>imported&gt;Uberfukken</name></author>
	</entry>
</feed>