PC Lab 6: Diferență între versiuni

De la WikiLabs
Linia 22: Linia 22:
 
# Check what opencl-capable devices with command '''clinfo'''
 
# Check what opencl-capable devices with command '''clinfo'''
 
# Run the VectorAddOpenCL app [[http://wiki.dcae.pub.ro/images/4/4a/VectorAddOpenCL.cpp]] to see that all works ok
 
# Run the VectorAddOpenCL app [[http://wiki.dcae.pub.ro/images/4/4a/VectorAddOpenCL.cpp]] to see that all works ok
# Implement the normalization operation across 1 OpenCL thread of a single device
+
# Implement the normalization operation on a CPU, for reference.
# Implement the normalization operation across multiple OpenCL threads of the same device
+
# Implement the normalization operation across 1 OpenCL thread of a single device. Check the result.
 
+
# Implement the normalization operation across multiple OpenCL threads of the same device. Check the result.
 +
# How much faster is the OpenCL op performed on all threads vs. 1 thread on the same Open CL device ?
  
 
'''Points (out of 10) vs. expected performance''':
 
'''Points (out of 10) vs. expected performance''':

Versiunea de la data 26 aprilie 2018 15:20

Session 6

Task: run matrix-column normalization using OpenCL (https://www.khronos.org/opencl)

Matrix-column normalization means that, at the end of the process, every sum of squared elements on the same column is 1.

Example: Assuming matrix is

[ 1, 2 ] 
[ 3, 4 ]

the result of normalization is :

[ 0.3162     0.4472 ]
[ 0.9487     0.8944 ]

That is: 0.3162 * 0.3162 + 0.9487 * 0.9487 = 1 and of course, 0.3162 / 0.9487 is kept as 1 / 3 ratio That is: 0.4472 * 0.4472 + 0.8944 * 0.8944 = 1 and of course, 0.4472 / 0.8944 is kept as 2 / 4 ratio

  1. Install opencl drivers for your platform
  2. Check what opencl-capable devices with command clinfo
  3. Run the VectorAddOpenCL app [[1]] to see that all works ok
  4. Implement the normalization operation on a CPU, for reference.
  5. Implement the normalization operation across 1 OpenCL thread of a single device. Check the result.
  6. Implement the normalization operation across multiple OpenCL threads of the same device. Check the result.
  7. How much faster is the OpenCL op performed on all threads vs. 1 thread on the same Open CL device ?

Points (out of 10) vs. expected performance:


[[]]