Compare commits

...

19 Commits

Author SHA1 Message Date
bda49a20c9 chore: delivery preparation 2025-11-27 18:49:46 +01:00
09ee32383f feat(Mandelbrot): add TP mandelbrot 2025-11-27 18:41:30 +01:00
a892100308 doc(sliceSM): add output for sliceSM lab 2025-11-24 23:22:33 +01:00
bf9a0a2941 feat(sliceSM): add sliceSM 2025-11-24 23:21:59 +01:00
cb6856ccde feat(reduction): add reduction generic PII long 2025-11-17 19:13:08 +01:00
1ec4ef198e feat(reduction): add reduction generic PII int 2025-11-17 18:46:08 +01:00
78fb87e978 feat/reduction): add reduction generic PI int 2025-11-17 18:34:58 +01:00
135f425fd7 feat(reduction): add reduction PII add 2025-11-17 18:00:54 +01:00
dbaa9440b4 chore: add task and clangd 2025-11-15 18:03:49 +01:00
1543a0f121 feat(reduction): add reduction PI add 2025-11-15 18:03:11 +01:00
2daed2f9eb feat(rippling): add lab Image Rippling 2D
- Full compute - Demi compute (optimisation)
2025-11-14 12:34:05 +01:00
3cc8fef087 feat(lab02): add result Slice GM 2025-11-07 12:17:32 +01:00
043d28b5dd feat(lab01): add result of GM Host 2025-11-07 12:17:12 +01:00
b556656a2d chore: update symlink cuda 3d cubre 2025-11-07 12:16:43 +01:00
efed56c0b1 chore: update symlink cuda 2025-11-07 12:16:19 +01:00
1732758656 feat(lab02): add Slice GM 2025-11-07 12:15:18 +01:00
dcd3df8f89 feat(lab01): add Slice GM Host lab 2025-10-18 16:39:18 +02:00
f800b4f395 feat(warmup): add solutions 2025-10-18 16:37:06 +02:00
f8ae49d666 feat(omp): add lab omp realised during classroom 2025-10-18 16:36:29 +02:00
163 changed files with 4478 additions and 2113 deletions

15
.zed/tasks.json Normal file
View File

@@ -0,0 +1,15 @@
[
{
"label": "Run CUDA - Student_Cuda",
"command": "cbicc cuda clean jall run",
"cwd": "Student_Cuda",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always",
"reveal_target": "dock",
"hide": "never",
"shell": "system",
"show_summary": true,
"show_command": true
}
]

10
Student_Cuda/.clangd Normal file
View File

@@ -0,0 +1,10 @@
CompileFlags:
Add:
- "-I/home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/INC_SYMLINK/EXT"
- "-I/home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/INC_SYMLINK/PROJECT"
- "-std=c++17"
- "-x"
- "cuda"
---
Diagnostics:
Suppress: "*"

View File

@@ -0,0 +1,14 @@
[
{
"label": "Run CUDA",
"command": "cbicc cuda clean jall run",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always",
"reveal_target": "dock",
"hide": "never",
"shell": "system",
"show_summary": true,
"show_command": true
}
]

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/02_baseline/host/AddVector.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/02_baseline/host/AddVector.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_bistream/host/AddVectorBistream.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_bistream/host/AddVectorBistream.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_bistream/host/AddVectorBistream_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_bistream/host/AddVectorBistream_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/AddVectorTristream.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/AddVectorTristream.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/AddVectorTristream_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/AddVectorTristream_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/02_baseline/host/AddVector_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/02_baseline/host/AddVector_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/01_Montecarlo_mono/host/Montecarlo.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/01_Montecarlo_mono/host/Montecarlo.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/02_Montecarlo_multi/host/MontecarloMulti_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/02_Montecarlo_multi/host/MontecarloMulti_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/02_Montecarlo_multi/host/02_stream_version/MontecarloMulti_stream.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/02_Montecarlo_multi/host/02_stream_version/MontecarloMulti_stream.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/02_Montecarlo_multi/host/01_thread_version/MontecarloMulti_thread.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/02_Montecarlo_multi/host/01_thread_version/MontecarloMulti_thread.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/01_Montecarlo_mono/host/Montecarlo_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/01_Montecarlo_mono/host/Montecarlo_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/01_algorithme/generic/Reduction.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/01_algorithme/generic/Reduction.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/01_algorithme/add/ReductionAdd.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/01_algorithme/add/ReductionAdd.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/add/int/PI/host/ReductionAddIntI.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/add/int/PI/host/ReductionAddIntI.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/add/int/PII/host/ReductionAddIntII.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/add/int/PII/host/ReductionAddIntII.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/generic/int/PI/host/ReductionIntI.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/generic/int/PI/host/ReductionIntI.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/generic/int/PII/host/ReductionIntII.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/generic/int/PII/host/ReductionIntII.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/generic/long/PII/host/ReductionLongII.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/../Student_Cuda_Tools_Reduction/src/core/02_use_protocole/generic/long/PII/host/ReductionLongII.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/02_Slice_GM/host/SliceGM.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/02_Slice_GM/host/SliceGM.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/01_Slice_GM_Host/host/SliceGMHOST.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/01_Slice_GM_Host/host/SliceGMHOST.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/01_Slice_GM_Host/host/SliceGMHost_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/01_Slice_GM_Host/host/SliceGMHost_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/02_Slice_GM/host/SliceGM_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/02_Slice_GM/host/SliceGM_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/03_Slice_SM/host/SliceSM.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/03_Slice_SM/host/SliceSM.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/03_Slice_SM/host/SliceSM_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/03_Slice/03_Slice_SM/host/SliceSM_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/00_tools/VectorTools.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/00_tools/VectorTools.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/entier_montecarlo.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/04_Montecarlo/entier_montecarlo.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/01_device/losetime.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/01_device/losetime.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/warmup/run3Slice.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/warmup/run3Slice.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/warmup/run4Slice.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/warmup/run4Slice.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/warmup/run5Slice.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/warmup/run5Slice.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/runGeneric.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda/src/core/01_student/05_addvector_stream/03_tristream/host/helper/runGeneric.h

View File

@@ -0,0 +1,218 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>SliceGMHOST_justesse </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>SliceGMHOST_justesse </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">3.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestSliceGMHOST">TestSliceGMHOST</a></td>
<td style="width:10%" class="tablecell_success">14</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">3.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestSliceGMHOST"></a>Suite: TestSliceGMHOST</h3>
<table summary="Details for suite TestSliceGMHOST" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">testDB2</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB4</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB8</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB16</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB32</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB64</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB128</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB256</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB512</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB1024</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testGrid</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">1.000000</td>
</tr>
<tr>
<td class="tablecell_success">testMonoBlock</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">2.000000</td>
</tr>
<tr>
<td class="tablecell_success">testMonoThread</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testBestGrid</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>SliceGMHOST_performance </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>SliceGMHOST_performance </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">1</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">10.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestPerformance_RunnableGPU_A">TestPerformance_RunnableGPU_A</a></td>
<td style="width:10%" class="tablecell_success">1</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">10.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestPerformance_RunnableGPU_A"></a>Suite: TestPerformance_RunnableGPU_A</h3>
<table summary="Details for suite TestPerformance_RunnableGPU_A" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">performanceOnly</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">10.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,212 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>SliceGM_justesse </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>SliceGM_justesse </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">1.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestSliceGM">TestSliceGM</a></td>
<td style="width:10%" class="tablecell_success">13</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">1.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestSliceGM"></a>Suite: TestSliceGM</h3>
<table summary="Details for suite TestSliceGM" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">testDB2</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB4</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB8</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB16</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB32</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB64</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">1.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB128</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB256</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB512</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB1024</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testGrid</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testMonoBlock</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testBestGrid</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>SliceGM_performance </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>SliceGM_performance </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">1</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">11.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestPerformance_RunnableGPU_A">TestPerformance_RunnableGPU_A</a></td>
<td style="width:10%" class="tablecell_success">1</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">11.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestPerformance_RunnableGPU_A"></a>Suite: TestPerformance_RunnableGPU_A</h3>
<table summary="Details for suite TestPerformance_RunnableGPU_A" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">performanceOnly</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">11.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,212 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>SliceSM_justesse </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>SliceSM_justesse </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">0.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestSliceSM">TestSliceSM</a></td>
<td style="width:10%" class="tablecell_success">13</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">0.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestSliceSM"></a>Suite: TestSliceSM</h3>
<table summary="Details for suite TestSliceSM" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">testDB2</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB4</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB8</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB16</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB32</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB64</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB128</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB256</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB512</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testDB1024</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testGrid</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testMonoBlock</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
<tr>
<td class="tablecell_success">testBestGrid</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">0.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>SliceSM_performance </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>SliceSM_performance </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">1</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">11.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestPerformance_RunnableGPU_A">TestPerformance_RunnableGPU_A</a></td>
<td style="width:10%" class="tablecell_success">1</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">11.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestPerformance_RunnableGPU_A"></a>Suite: TestPerformance_RunnableGPU_A</h3>
<table summary="Details for suite TestPerformance_RunnableGPU_A" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">performanceOnly</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">11.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,6 @@
32,64,128,256,512,1024
32,64,128,256,512,1024
32,64,128,256,512,1024
32,64,128,256,512,1024
32,64,128,256,512,1024
32,64,128,256,512,1024
1 32 64 128 256 512 1024
2 32 64 128 256 512 1024
3 32 64 128 256 512 1024
4 32 64 128 256 512 1024
5 32 64 128 256 512 1024
6 32 64 128 256 512 1024

View File

@@ -0,0 +1,6 @@
32,32,32,32,32,32
64,64,64,64,64,64
128,128,128,128,128,128
256,256,256,256,256,256
512,512,512,512,512,512
1024,1024,1024,1024,1024,1024
1 32 32 32 32 32 32
2 64 64 64 64 64 64
3 128 128 128 128 128 128
4 256 256 256 256 256 256
5 512 512 512 512 512 512
6 1024 1024 1024 1024 1024 1024

View File

@@ -0,0 +1,6 @@
3750,6817,11066,12202,11631,10322
6844,11006,15104,15871,13479,10287
10991,11878,15129,13202,10284,7342
14949,15120,13135,10312,7368,4615
15185,13094,10243,7384,4626,2678
13038,10240,7363,4636,2691,1459
1 3750 6817 11066 12202 11631 10322
2 6844 11006 15104 15871 13479 10287
3 10991 11878 15129 13202 10284 7342
4 14949 15120 13135 10312 7368 4615
5 15185 13094 10243 7384 4626 2678
6 13038 10240 7363 4636 2691 1459

View File

@@ -0,0 +1,10 @@
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
64,128,256,512,1024
1 64 128 256 512 1024
2 64 128 256 512 1024
3 64 128 256 512 1024
4 64 128 256 512 1024
5 64 128 256 512 1024
6 64 128 256 512 1024
7 64 128 256 512 1024
8 64 128 256 512 1024
9 64 128 256 512 1024
10 64 128 256 512 1024

View File

@@ -0,0 +1,10 @@
68,68,68,68,68
136,136,136,136,136
204,204,204,204,204
272,272,272,272,272
340,340,340,340,340
408,408,408,408,408
476,476,476,476,476
544,544,544,544,544
612,612,612,612,612
680,680,680,680,680
1 68 68 68 68 68
2 136 136 136 136 136
3 204 204 204 204 204
4 272 272 272 272 272
5 340 340 340 340 340
6 408 408 408 408 408
7 476 476 476 476 476
8 544 544 544 544 544
9 612 612 612 612 612
10 680 680 680 680 680

View File

@@ -0,0 +1,10 @@
14872,23559,29077,29179,29245
23644,29250,29265,29249,29235
23620,29205,29208,29217,23873
29202,29184,29182,29183,23568
23586,29205,29282,29279,23595
29261,29312,29262,29297,23584
29235,29140,29239,29173,19773
29160,29123,29176,29187,19713
29179,29213,29187,29235,19736
26261,29069,29066,29051,19642
1 14872 23559 29077 29179 29245
2 23644 29250 29265 29249 29235
3 23620 29205 29208 29217 23873
4 29202 29184 29182 29183 23568
5 23586 29205 29282 29279 23595
6 29261 29312 29262 29297 23584
7 29235 29140 29239 29173 19773
8 29160 29123 29176 29187 19713
9 29179 29213 29187 29235 19736
10 26261 29069 29066 29051 19642

View File

@@ -22,12 +22,21 @@ static __device__ float f(float x);
* tabGM est un tableau promu, qui a autant de case que de thread * tabGM est un tableau promu, qui a autant de case que de thread
* </pre> * </pre>
*/ */
__global__ void reductionIntraThreadGMHOST(float* tabGM , int nbSlice) __global__ void reductionIntraThreadGMHOST(float* tabGM , int nbSlice) {
{
const int NB_THREAD = Thread2D::nbThread(); const int NB_THREAD = Thread2D::nbThread();
const int TID = Thread2D::tid(); const int TID = Thread2D::tid();
// TODO SliceGMHOST const float delta_x = 1.f / (float)nbSlice;
int s = TID;
tabGM[TID] = 0.f;
while(s < nbSlice) {
float xi = s * delta_x;
tabGM[TID] += f(xi);
s+=NB_THREAD;
}
// Conseils : // Conseils :
// //
@@ -43,13 +52,10 @@ __global__ void reductionIntraThreadGMHOST(float* tabGM , int nbSlice)
|* Private *| |* Private *|
\*-------------------------------------*/ \*-------------------------------------*/
__device__ float f(float x) __device__ float f(float x) {
{ return 4.f / (1.f + x * x);
// TODO SliceGMHOST }
return -1;
}
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -29,20 +29,19 @@ extern __global__ void reductionIntraThreadGMHOST(float* tabGM,int nbSlice);
SliceGMHOST::SliceGMHOST(Grid grid , int nbSlice , double* ptrPiHat , bool isVerbose) : SliceGMHOST::SliceGMHOST(Grid grid , int nbSlice , double* ptrPiHat , bool isVerbose) :
RunnableGPU(grid, "SliceGM_HOST_" + to_string(nbSlice), isVerbose), // classe parente RunnableGPU(grid, "SliceGM_HOST_" + to_string(nbSlice), isVerbose), // classe parente
// nbSlice(nbSlice),
nbSlice(nbSlice), // ptrPiHat(ptrPiHat)
ptrPiHat(ptrPiHat) // {
{
this->nTabGM = -1; // TODO SliceGMHOST // le nombre de case de tabGM. Indication : grid.threadCounts() donne le nombre de thread ed la grille
this->sizeTabGM = -1; // TODO SliceGMHOST // la taille en octet de tabGM [octet]
// TODO SliceGMHOST this->nTabGM = grid.threadCounts(); // le nombre de case de tabGM. Indication : grid.threadCounts() donne le nombre de thread de la grille
} this->sizeTabGM = nTabGM * sizeof(float); // la taille en octet de tabGM [octet]
SliceGMHOST::~SliceGMHOST(void) GM::malloc(&tabGM, sizeTabGM);
{ }
// TODO SliceGMHOST
} SliceGMHOST::~SliceGMHOST(void) {
GM::free(tabGM);
}
/*--------------------------------------*\ /*--------------------------------------*\
|* Methode *| |* Methode *|
@@ -60,9 +59,9 @@ SliceGMHOST::~SliceGMHOST(void)
* *
* </pre> * </pre>
*/ */
void SliceGMHOST::run() void SliceGMHOST::run() {
{
// TODO SliceGMHOST // call the kernel reductionIntraThreadGMHOST<<<dg, db>>>(tabGM, nbSlice);
// Indication: // Indication:
// dg et db sont stokcer dans la classe parente // dg et db sont stokcer dans la classe parente
@@ -70,7 +69,7 @@ void SliceGMHOST::run()
// exemple : reductionIntraThreadGMHOST<<<dg,db>>>(...) // exemple : reductionIntraThreadGMHOST<<<dg,db>>>(...)
reductionHost(); reductionHost();
} }
/*--------------------------------------*\ /*--------------------------------------*\
|* Private *| |* Private *|
@@ -88,7 +87,15 @@ void SliceGMHOST::reductionHost()
// TODO SliceGMHOST // TODO SliceGMHOST
float tab[nTabGM];
GM::memcpyDToH(tab, tabGM, sizeTabGM);
for (int i = 0; i < nTabGM; i++) {
*ptrPiHat += (double)tab[i];
} }
const double delta_x = 1.f / (float)nbSlice;
*ptrPiHat *= delta_x;
}
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -11,29 +11,27 @@
|* Impelmentation *| |* Impelmentation *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
namespace sliceGMHost namespace sliceGMHost {
{
class BestGrid class BestGrid {
{
public: public:
static Grid get() static Grid get() {
{ const int MP = Hardware::getMPCount();
const int MP = Hardware::getMPCount(); const int CORE_MP = Hardware::getCoreCountMP();
// TODO SliceGMHOST grid dim3 dg(MP, 1, 1);
dim3 db(CORE_MP, 2, 1); // produit <=1024
Grid grid(dg, db);
// to remove once coded return grid;
{
Couts::redln("aie aie aie, your best grid won t build itself");
assert(false);
}
}
}; }
}
};
}
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -1,5 +1,5 @@
#include "Thread2D.cu.h"
#include "Thread1D.cu.h" #include "Thread1D.cu.h"
#include "Thread2D.cu.h"
#include "cudas.h" #include "cudas.h"
#include <stdio.h> #include <stdio.h>
@@ -16,42 +16,57 @@ static __device__ float f(float x);
/** /**
* <pre> * <pre>
* Chaque thread effecteur une reduction intrathread avec le patern d'entrelacement, * Chaque thread effecteur une reduction intrathread avec le patern
* puis stocke son résultat dans SA case dans tabGM * d'entrelacement, puis stocke son résultat dans SA case dans tabGM
* *
* tabGM est un tableau promu, qui a autant de case que de thread * tabGM est un tableau promu, qui a autant de case que de thread
* </pre> * </pre>
*/ */
__global__ void reductionIntraThreadGM(float* tabGM , int nbSlice) __global__ void reductionIntraThreadGM(float *tabGM, int nbSlice) {
{ // TODO SliceGM (idem SliceGMHOST) pour cette partie
// TODO SliceGM (idem SliceGMHOST) pour cette partie const int NB_THREAD = Thread2D::nbThread();
} const int TID = Thread2D::tid();
const float delta_x = 1.f / (float)nbSlice;
int s = TID;
tabGM[TID] = 0.f;
while (s < nbSlice) {
float xi = s * delta_x;
tabGM[TID] += f(xi);
s += NB_THREAD;
}
}
/** /**
* <pre> * <pre>
* Effectue la reduction de tabGM cote device, par ecrasement 2 à 2 successif. * Effectue la reduction de tabGM cote device, par ecrasement 2 à 2 successif.
* Ce kernel d ecrasement est appeler depuis le host dans une boucle, avec le bon nombre de thread * Ce kernel d ecrasement est appeler depuis le host dans une boucle, avec le
* bon nombre de thread
* *
* Hypothese : |tabGM| est une puissance de 2 * Hypothese : |tabGM| est une puissance de 2
* *
* Output: le resultat de la reduction est tans tabGM[0] * Output: le resultat de la reduction est tans tabGM[0]
* </pre> * </pre>
*/ */
__global__ void ecrasementGM(float* tabGM , int moitier) __global__ void ecrasementGM(float *tabGM, int moitier) {
{ // TODO SliceGM
// TODO SliceGM const int TID = Thread2D::tid();
} if (TID < moitier) {
tabGM[TID] += tabGM[TID + moitier];
}
}
/*--------------------------------------*\ /*--------------------------------------*\
|* Private *| |* Private *|
\*-------------------------------------*/ \*-------------------------------------*/
__device__ float f(float x) __device__ float f(float x) {
{
return 4.f / (1.f + x * x); return 4.f / (1.f + x * x);
} }
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -1,12 +1,12 @@
#include "SliceGM.h" #include "SliceGM.h"
#include <iostream>
#include <assert.h> #include <assert.h>
#include <iostream>
#include "GM.h" #include "GM.h"
#include "Maths.h"
#include "Hardware.h" #include "Hardware.h"
#include "Kernel.h" #include "Kernel.h"
#include "Maths.h"
using std::cout; using std::cout;
using std::endl; using std::endl;
@@ -16,8 +16,8 @@ using std::to_string;
|* Imported *| |* Imported *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
extern __global__ void reductionIntraThreadGM(float* tabGM,int nbSlice); extern __global__ void reductionIntraThreadGM(float *tabGM, int nbSlice);
extern __global__ void ecrasementGM(float* tabGM, int moitier); extern __global__ void ecrasementGM(float *tabGM, int moitier);
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* Implementation *| |* Implementation *|
@@ -27,21 +27,23 @@ extern __global__ void ecrasementGM(float* tabGM, int moitier);
|* Constructeur *| |* Constructeur *|
\*-------------------------------------*/ \*-------------------------------------*/
SliceGM::SliceGM(Grid grid , int nbSlice , double* ptrPiHat , bool isVerbose) : SliceGM::SliceGM(Grid grid, int nbSlice, double *ptrPiHat, bool isVerbose)
RunnableGPU(grid, "SliceGM_" + to_string(nbSlice), isVerbose), // classe parente : RunnableGPU(grid, "SliceGM_" + to_string(nbSlice),
// isVerbose), // classe parente
nbSlice(nbSlice), // //
ptrPiHat(ptrPiHat) // nbSlice(nbSlice), //
{ ptrPiHat(ptrPiHat) //
this->nTabGM = -1; // TODO SliceGM {
this->sizeTabGM = -1; // TODO SliceGM // [octet] this->nTabGM = grid.threadCounts(); // TODO SliceGM
this->sizeTabGM = nTabGM * sizeof(float); // TODO SliceGM // [octet]
} GM::malloc(&tabGM, sizeTabGM);
}
SliceGM::~SliceGM(void) SliceGM::~SliceGM(void) {
{ // TODO SliceGM
// TODO SliceGM GM::free(tabGM);
} }
/*--------------------------------------*\ /*--------------------------------------*\
|* Methode *| |* Methode *|
@@ -54,17 +56,16 @@ SliceGM::~SliceGM(void)
* Etape 0 : Promotion d'un tableau en GM (MemoryManagement MM) * Etape 0 : Promotion d'un tableau en GM (MemoryManagement MM)
* Etape 1 : Reduction intra-thread dans un tableau promu en GM * Etape 1 : Reduction intra-thread dans un tableau promu en GM
* Etape 2 : Reduction du tableau en GM par ecrasement hierarchique 2 à 2 * Etape 2 : Reduction du tableau en GM par ecrasement hierarchique 2 à 2
* On lance les kernels d'ecrasement depuis le host (chef d'orchestre) * On lance les kernels d'ecrasement depuis le host (chef
* Etape 4 : Copy du resultat coter host * d'orchestre) Etape 4 : Copy du resultat coter host Etape 5 : Destruction GM
* Etape 5 : Destruction GM
* </pre> * </pre>
*/ */
void SliceGM::run() void SliceGM::run() {
{ // TODO SliceGM // call the kernel (asynchrone)
//TODO SliceGM // call the kernel (asynchrone) reductionIntraThreadGM<<<dg, db>>>(tabGM, nbSlice);
reductionGM(); reductionGM();
} }
/*--------------------------------------*\ /*--------------------------------------*\
|* Private *| |* Private *|
@@ -75,21 +76,33 @@ void SliceGM::run()
* Etape 2 : recuperer le resultat coter host * Etape 2 : recuperer le resultat coter host
* Etape 3 : finaliser le calcule de PI * Etape 3 : finaliser le calcule de PI
*/ */
void SliceGM::reductionGM() void SliceGM::reductionGM() {
{ int midle = nTabGM >> 1; // nTabGM/2;
int midle = nTabGM >> 1; // nTabGM/2; dim3 dgx(midle, 1, 1);
dim3 dbx(1, 1, 1);
// TODO SliceGM // TODO SliceGM
while (midle >= 1) {
ecrasementGM<<<dgx, dbx>>>(tabGM, midle);
midle /= 2;
dgx.x = midle;
}
// Warning: Utiliser une autre grille que celle heriter de la classe parente dg, db float result;
// Votre grid ici doit avoir une taille speciale! GM::memcpyDToH_float(&result, tabGM);
// N'utiliser donc pas les variables dg et db de la classe parentes const double delta_x = 1.f / (float)nbSlice;
*ptrPiHat = result * delta_x;
// Tip: Il y a une methode dedier pour ramener un float cote host // Warning: Utiliser une autre grille que celle heriter de la classe
// // parente dg, db Votre grid ici doit avoir une taille
// float resultat; // speciale! N'utiliser donc pas les variables dg et db de la
// GM::memcpyDToH_float(&resultat,ptrResultGM); // classe parentes
}
// Tip: Il y a une methode dedier pour ramener un float cote host
//
// float resultat;
// GM::memcpyDToH_float(&resultat,ptrResultGM);
}
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -1,62 +1,56 @@
#pragma once #pragma once
#include "cudas.h"
#include "Grid.h" #include "Grid.h"
#include "RunnableGPU.h" #include "RunnableGPU.h"
#include "cudas.h"
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* Declaration *| |* Declaration *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
class SliceGM: public RunnableGPU class SliceGM : public RunnableGPU {
{ /*--------------------------------------*\
/*--------------------------------------*\ |* Constructor *|
|* Constructor *| \*-------------------------------------*/
\*-------------------------------------*/
public: public:
/**
* update piHat
* Hyp : nbThread est une puissance de 2
*/
SliceGM(Grid grid, int nbSlice, double *ptrPiHat, bool isVerbose);
/** virtual ~SliceGM();
* update piHat
* Hyp : nbThread est une puissance de 2
*/
SliceGM(Grid grid , int nbSlice , double* ptrPiHat , bool isVerbose);
virtual ~SliceGM(); /*--------------------------------------*\
|* Methodes *|
\*-------------------------------------*/
/*--------------------------------------*\ public:
|* Methodes *| /**
\*-------------------------------------*/ * override
*/
virtual void run();
public: private:
void reductionGM();
/** /*--------------------------------------*\
* override |* Attributs *|
*/ \*-------------------------------------*/
virtual void run();
private: private:
// Inputs
int nbSlice;
void reductionGM(); // Inputs/Outputs
double *ptrPiHat;
/*--------------------------------------*\ // Tools
|* Attributs *| float *tabGM;
\*-------------------------------------*/ size_t sizeTabGM; // [octet]
int nTabGM;
private: };
// Inputs
int nbSlice;
// Inputs/Outputs
double* ptrPiHat;
// Tools
float* tabGM;
size_t sizeTabGM; // [octet]
int nTabGM;
};
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -1,45 +1,35 @@
#pragma once #pragma once
#include <iostream>
#include <assert.h> #include <assert.h>
#include <iostream>
#include "Couts.h"
#include "Grid.h" #include "Grid.h"
#include "Hardware.h" #include "Hardware.h"
#include "Couts.h"
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* Impelmentation *| |* Impelmentation *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
namespace sliceGM namespace sliceGM {
{
class BestGrid class BestGrid {
{
public: public:
static Grid get() {
const bool IS_CHECK_HEURISTIC = true;
static Grid get() const int MP = 64; // Hardware::getMPCount();
{ const int CORE_MP = Hardware::getCoreCountMP();
const bool IS_CHECK_HEURISTIC = false;
const int MP = Hardware::getMPCount(); dim3 dg(MP, 1, 1); // power 2 // TODO SliceGM grid
dim3 db(CORE_MP, 4, 1); // power 2 // TODO SliceGM grid
Grid grid(dg, db, IS_CHECK_HEURISTIC); // all power 2
dim3 dg(1, 1, 1); // power 2 // TODO SliceGM grid return grid;
dim3 db(1, 1, 1); // power 2 // TODO SliceGM grid }
Grid grid(dg, db, IS_CHECK_HEURISTIC); // all power 2 };
} // namespace sliceGM
// to remove once coded
{
Couts::redln("aie aie aie, your best grid won t build itself");
assert(false);
}
return grid;
}
};
}
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -17,16 +17,21 @@ static __device__ float f(float x);
|* Implementation *| |* Implementation *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
__global__ void sliceSM(int nbSlice , float* ptrPiHatGM) __global__
{ void sliceSM(int nbSlice , float* ptrPiHatGM) {
// TODO SliceSM // TODO SliceSM
// Reception tabSM // Reception tabSM
extern __shared__ float tabSM[];
// ReductionIntraThread // ReductionIntraThread
reductionIntraThread(tabSM, nbSlice);
__syncthreads();
// Reduction de tabSM (use tools ReductionAdd) // Reduction de tabSM (use tools ReductionAdd)
ReductionAdd::reduce(tabSM, ptrPiHatGM);
// __syncthreads(); necessaire? ou? pas a la fin en tout cas // __syncthreads(); necessaire? ou? pas a la fin en tout cas
} }
/*--------------------------------------*\ /*--------------------------------------*\
|* Private *| |* Private *|
@@ -35,19 +40,33 @@ __global__ void sliceSM(int nbSlice , float* ptrPiHatGM)
/** /**
* remplit la sm * remplit la sm
*/ */
void reductionIntraThread(float* tabSM , int nbSlice) static
{ __device__
void reductionIntraThread(float* tabSM , int nbSlice) {
// TODO SliceSM // TODO SliceSM
// Warning: Il faut employer TID et TID_LOCAL // Warning: Il faut employer TID et TID_LOCAL
} const int TID = Thread2D::tid();
const int localTID = Thread2D::tidLocal();
const int NB_THREAD = Thread2D::nbThread();
__device__ float f(float x) const float delta_x = 1.f / (float)nbSlice;
{
return 4.f / (1.f + x * x); int s = TID;
tabSM[localTID] = 0.f;
while (s < nbSlice) {
float xi = s * delta_x;
tabSM[localTID] += f(xi);
s += NB_THREAD;
} }
}
__device__
float f(float x) {
return 4.f / (1.f + x * x);
}
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -25,34 +25,31 @@ extern __global__ void sliceSM(int nbSlice,float* ptrPiHatGM);
\*-------------------------------------*/ \*-------------------------------------*/
SliceSM::SliceSM(const Grid& grid , int nbSlice , double* ptrPiHat , bool isVerbose) : SliceSM::SliceSM(const Grid& grid , int nbSlice , double* ptrPiHat , bool isVerbose) :
RunnableGPU(grid, "SliceSM_" + to_string(nbSlice), isVerbose), // classe parente RunnableGPU(grid, "SliceSM_" + to_string(nbSlice), isVerbose),
// ptrPiHat(ptrPiHat),
ptrPiHat(ptrPiHat), // nbSlice(nbSlice) {
nbSlice(nbSlice) // this->sizeSM = grid.threadByBlock() * sizeof(float); //TODO SliceSM
{
this->sizeSM = -1; //TODO SliceSM
// MM // MM
{ {
// TODO SliceSM (pas oublier de mettre a zero, avec mallocfloat0 par exemple) // TODO SliceSM (pas oublier de mettre a zero, avec mallocfloat0 par exemple)
GM::mallocFloat0(&ptrPiHatGM);
// Tip: Il y a une methode dedier pour malloquer un float cote device et l'initialiser a zero // Tip: Il y a une methode dedier pour malloquer un float cote device et l'initialiser a zero
// //
// GM::mallocfloat0(&ptrPiHatGM); // GM::mallocfloat0(&ptrPiHatGM);
} }
} }
SliceSM::~SliceSM(void) SliceSM::~SliceSM(void) {
{
//TODO SliceSM //TODO SliceSM
} GM::free(ptrPiHatGM);
}
/*--------------------------------------*\ /*--------------------------------------*\
|* Methode *| |* Methode *|
\*-------------------------------------*/ \*-------------------------------------*/
void SliceSM::run() void SliceSM::run() {
{
// Etape 1 : lancer le kernel // Etape 1 : lancer le kernel
// Etape 2 : recuperer le resultat coter host (par exemple avec memcpyDToH_float) // Etape 2 : recuperer le resultat coter host (par exemple avec memcpyDToH_float)
// Etape 3 : finaliser le calcul de PI // Etape 3 : finaliser le calcul de PI
@@ -60,7 +57,12 @@ void SliceSM::run()
// Solution : double result; // et ramener dans result, transferer et finaliser ensuite dans ptrPiHat // Solution : double result; // et ramener dans result, transferer et finaliser ensuite dans ptrPiHat
// TODO SliceSM // TODO SliceSM
} sliceSM<<<dg,db,this->sizeSM>>>(this->nbSlice, this->ptrPiHatGM);
float result;
GM::memcpyDToH_float(&result, this->ptrPiHatGM);
const double delta_x = 1.0 / (double) this->nbSlice;
*this->ptrPiHat = (double) result * delta_x;
}
///////////////////////// /////////////////////////
// Rappel: // Rappel:

View File

@@ -8,8 +8,7 @@
|* Declaration *| |* Declaration *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
class SliceSM: public RunnableGPU class SliceSM: public RunnableGPU {
{
/*--------------------------------------*\ /*--------------------------------------*\
|* Constructor *| |* Constructor *|
\*-------------------------------------*/ \*-------------------------------------*/
@@ -51,7 +50,7 @@ class SliceSM: public RunnableGPU
size_t sizeSM; // [octet] size_t sizeSM; // [octet]
float* ptrPiHatGM; float* ptrPiHatGM;
}; };
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -11,29 +11,26 @@
|* Impelmentation *| |* Impelmentation *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
namespace sliceSM namespace sliceSM {
{
class BestGrid class BestGrid {
{
public: public:
static Grid get() static Grid get() {
{ const int MP = Hardware::getMPCount();
const int MP = Hardware::getMPCount(); const int CORE_MP = Hardware::getCoreCountMP();
// TODO SliceGMHOST grid // TODO SliceGMHOST grid
dim3 dg(MP, 6, 1);
dim3 db(CORE_MP, 2, 1);
Grid grid(dg, db);
// to remove once coded return grid;
{
Couts::redln("aie aie aie, your best grid won t build itself");
assert(false);
}
} }
}; };
} }
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -28,8 +28,8 @@ int main(int argc , char** argv)
// public // public
{ {
cudaContext.deviceId = 0; // in [0,2] width Server Cuda3 cudaContext.deviceId = 1; // in [0,2] width Server Cuda3
cudaContext.launchMode = LaunchModeMOO::USE; // USE TEST BENCHMARK FORCEBRUT cudaContext.launchMode = LaunchModeMOO::TEST; // USE TEST BENCHMARK FORCEBRUT
cudaContext.deviceDriver = DeviceDriver::LOAD_ALL; // LOAD_CURRENT LOAD_ALL cudaContext.deviceDriver = DeviceDriver::LOAD_ALL; // LOAD_CURRENT LOAD_ALL
cudaContext.deviceInfo = DeviceInfo::ALL_SIMPLE; // NONE ALL ALL_SIMPLE CURRENT cudaContext.deviceInfo = DeviceInfo::ALL_SIMPLE; // NONE ALL ALL_SIMPLE CURRENT
@@ -49,4 +49,3 @@ int main(int argc , char** argv)
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -34,6 +34,7 @@ using std::endl;
static void sliceGMHOST(); static void sliceGMHOST();
static void sliceGM(); static void sliceGM();
static void sliceSM();
static void montecarloMono(); static void montecarloMono();
@@ -58,9 +59,9 @@ int mainBenchmark()
// Slice // Slice
{ {
sliceGMHOST(); // sliceGMHOST();
//sliceGM(); // sliceGM();
//sliceSM(); sliceSM();
//sliceMulti(); //sliceMulti();
} }
@@ -182,4 +183,3 @@ void addvectorTristream()
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -74,9 +74,9 @@ int mainBrutforce()
// Slice // Slice
{ {
sliceGMHOST(&matlab); // sliceGMHOST(&matlab);
// sliceGM(&matlab); // sliceGM(&matlab);
// sliceSM(&matlab); sliceSM(&matlab);
} }
// Montecarlo // Montecarlo
@@ -374,4 +374,3 @@ void bruteforce(ProviderUse_I* ptrProviderUse , Matlab* ptrMatlab , const PlotTy
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -52,17 +52,16 @@ int mainTest()
/** /**
* activer ci-dessous la version souhaiter * activer ci-dessous la version souhaiter
*/ */
void slice() void slice() {
{
VTSliceGMHOST test1; VTSliceGMHOST test1;
VTSliceGM test2; VTSliceGM test2;
VTSliceSM test3; VTSliceSM test3;
test1.run(); test1.run();
// test2.run(); test2.run();
// test3.run(); test3.run();
} }
/** /**
* activer ci-dessous la version souhaiter * activer ci-dessous la version souhaiter
@@ -96,4 +95,3 @@ void vectorStream()
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -71,8 +71,8 @@ void slice(bool& isOk)
SliceSmUse sliceSmUse(IS_VERBOSE); SliceSmUse sliceSmUse(IS_VERBOSE);
isOk &= sliceGmHostUse.isOk(IS_VERBOSE); isOk &= sliceGmHostUse.isOk(IS_VERBOSE);
// isOk &= sliceGmUse.isOk(IS_VERBOSE); isOk &= sliceGmUse.isOk(IS_VERBOSE);
// isOk &= sliceSmUse.isOk(IS_VERBOSE); isOk &= sliceSmUse.isOk(IS_VERBOSE);
} }
/** /**
@@ -213,4 +213,3 @@ void print(bool isSuccess)
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/device/math/MandelbrotMath.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/device/math/MandelbrotMath.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/03_RayTracing/device/math/RaytracingMath.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/03_RayTracing/device/math/RaytracingMath.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/01_Rippling/device/math/RipplingMath.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/01_Rippling/device/math/RipplingMath.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/src/core/scene/SceneCubeCreator.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/src/core/scene/SceneCubeCreator.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/real_mandelbrot.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_3D_Cube/../Student_Cuda_Image/src/core/01_student/02_Mandelbrot/real_mandelbrot.h

View File

@@ -0,0 +1,7 @@
CompileFlags:
Add:
- "-I/home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/INC_SYMLINK/EXT"
- "-I/home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/INC_SYMLINK/PROJECT"
---
Diagnostics:
Suppress: "*"

View File

@@ -0,0 +1,17 @@
// Project tasks configuration. See https://zed.dev/docs/tasks for documentation.
//
// Example:
[
{
"label": "Run",
"command": "cbicc cuda clean jall runGL",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always",
"reveal_target": "dock",
"hide": "never",
"shell": "system",
"show_summary": true,
"show_command": true
}
]

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/device/math/MandelbrotMath.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/device/math/MandelbrotMath.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/host/Mandelbrot_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/03_RayTracing/device/math/RaytracingMath.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/03_RayTracing/device/math/RaytracingMath.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/03_RayTracing/host/Raytracing_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/01_Rippling/device/math/RipplingMath.cu.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/01_Rippling/device/math/RipplingMath.cu.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling_BestGrid.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/01_Rippling/host/Rippling_BestGrid.h

View File

@@ -1 +1 @@
/home/bilat/CBI/Dropbox/02_CBI_LINUX/CoursCuda/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/real_mandelbrot.h /home/mse15/CUDA/toStudent/code/WCudaStudent/Student_Cuda_Image/src/core/01_student/02_Mandelbrot/real_mandelbrot.h

View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>Mandelbrot_fp16_justesse </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>Mandelbrot_fp16_justesse </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">1</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">2.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestImageCuda">TestImageCuda</a></td>
<td style="width:10%" class="tablecell_success">1</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">2.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestImageCuda"></a>Suite: TestImageCuda</h3>
<table summary="Details for suite TestImageCuda" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">allTests</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">2.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>Mandelbrot_fp16_performance </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>Mandelbrot_fp16_performance </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">1</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">12.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestPerformance_RunnableGPU_A">TestPerformance_RunnableGPU_A</a></td>
<td style="width:10%" class="tablecell_success">1</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">12.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestPerformance_RunnableGPU_A"></a>Suite: TestPerformance_RunnableGPU_A</h3>
<table summary="Details for suite TestPerformance_RunnableGPU_A" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">performanceOnly</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">12.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>Rippling_justesse </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>Rippling_justesse </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">1</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">1.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestImageCuda">TestImageCuda</a></td>
<td style="width:10%" class="tablecell_success">1</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">1.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestImageCuda"></a>Suite: TestImageCuda</h3>
<table summary="Details for suite TestImageCuda" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">allTests</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">1.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="generator" content="CppTest - https://github.com/cpptest/cpptest" />
<title>Rippling_performance </title>
<style type="text/css" media="screen">
<!--
hr {
width: 100%;
border-width: 0px;
height: 1px;
color: #cccccc;
background-color: #cccccc;
padding: 0px;
}
table {
width:100%;
border-collapse:separate;
border-spacing: 2px;
border:0px;
}
tr {
margin:0px;
padding:0px;
}
td {
margin:0px;
padding:1px;
}
.table_summary {
}
.table_suites {
}
.table_suite {
}
.table_result {
margin: 0px 0px 1em 0px;
}
.tablecell_title {
background-color: #a5cef7;
font-weight: bold;
}
.tablecell_success {
background-color: #efefe7;
}
.tablecell_error {
color: #ff0808;
background-color: #efefe7;
font-weight: bold;
}
p.spaced {
margin: 0px;
padding: 1em 0px 2em 0px;
}
p.unspaced {
margin: 0px;
padding: 0px 0px 2em 0px;
}
-->
</style>
</head>
<body>
<h1><a name="top"></a>Rippling_performance </h1>
<div style="text-align:right">
Designed by <a href="https://github.com/cpptest/cpptest">CppTest</a>
</div>
<hr />
<h2>Summary</h2>
<table summary="Summary of test results" class="table_summary">
<tr>
<td style="width:30%" class="tablecell_title">Tests</td>
<td style="width:30%" class="tablecell_title">Errors</td>
<td style="width:30%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td style="width:30%" class="tablecell_success">1</td>
<td style="width:30%" class="tablecell_success">0</td>
<td style="width:30%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">16.000000</td>
</tr>
</table>
<hr />
<h2>Test suites</h2>
<table summary="Test Suites" class="table_suites">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Tests</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success"><a href="#TestPerformance_RunnableGPU_A">TestPerformance_RunnableGPU_A</a></td>
<td style="width:10%" class="tablecell_success">1</td>
<td style="width:10%" class="tablecell_success">0</td>
<td style="width:10%" class="tablecell_success">100%</td>
<td style="width:10%" class="tablecell_success">16.000000</td>
</tr>
</table>
<hr />
<h3><a name="TestPerformance_RunnableGPU_A"></a>Suite: TestPerformance_RunnableGPU_A</h3>
<table summary="Details for suite TestPerformance_RunnableGPU_A" class="table_suite">
<tr>
<td class="tablecell_title">Name</td>
<td style="width:10%" class="tablecell_title">Errors</td>
<td style="width:10%" class="tablecell_title">Success</td>
<td style="width:10%" class="tablecell_title">Time (s)</td>
</tr>
<tr>
<td class="tablecell_success">performanceOnly</td>
<td class="tablecell_success">0</td>
<td class="tablecell_success">true</td>
<td class="tablecell_success">16.000000</td>
</tr>
</table>
<p class="spaced"><a href="#top">Back to top</a>
</p>
<hr />
<p>
<a href="http://validator.w3.org/#validate-by-upload">
Valid XHTML 1.0 Strict
</a>
</p>
</body>
</html>

View File

@@ -0,0 +1,10 @@
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
1 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
2 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
3 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
4 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
5 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
6 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
7 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
8 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
9 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
10 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024

View File

@@ -0,0 +1,10 @@
68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68
136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136
204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204
272,272,272,272,272,272,272,272,272,272,272,272,272,272,272,272
340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340
408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408
476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476
544,544,544,544,544,544,544,544,544,544,544,544,544,544,544,544
612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612
680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680
1 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68
2 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136
3 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204
4 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272
5 340 340 340 340 340 340 340 340 340 340 340 340 340 340 340 340
6 408 408 408 408 408 408 408 408 408 408 408 408 408 408 408 408
7 476 476 476 476 476 476 476 476 476 476 476 476 476 476 476 476
8 544 544 544 544 544 544 544 544 544 544 544 544 544 544 544 544
9 612 612 612 612 612 612 612 612 612 612 612 612 612 612 612 612
10 680 680 680 680 680 680 680 680 680 680 680 680 680 680 680 680

View File

@@ -0,0 +1,10 @@
11261,21977,27704,28654,28277,28547,28629,28404,28310,28099,28086,28083,27716,27519,27791,28011
19038,28186,28672,29112,28426,28273,28146,28144,27978,27624,27759,27741,27325,27066,27341,27544
27172,28378,27808,28260,28006,28038,27917,27990,27496,27172,27343,27313,26925,26740,26918,27046
27677,28301,27408,28080,27452,27837,27162,27780,27046,26611,26934,26825,26609,26218,26593,26529
27585,27504,27616,27705,27863,27826,27102,27073,26633,26380,26509,26507,26361,25949,26339,26248
26661,27570,27783,28103,27632,27613,27589,27606,26069,25936,26088,26036,26011,25575,25894,25830
27632,27463,27391,27489,27242,27606,27584,26880,25818,25521,25840,25693,25640,25316,25482,25309
27657,27392,27302,27627,27038,27244,26594,27163,25196,24997,25035,25023,24712,24685,24668,24540
25842,24673,26280,26057,26492,25605,26130,25341,24431,23305,24874,23801,24877,23471,24577,23293
23284,25709,25062,26164,25511,27316,25176,24768,23921,22530,23529,22545,23692,22471,24333,22815
1 11261 21977 27704 28654 28277 28547 28629 28404 28310 28099 28086 28083 27716 27519 27791 28011
2 19038 28186 28672 29112 28426 28273 28146 28144 27978 27624 27759 27741 27325 27066 27341 27544
3 27172 28378 27808 28260 28006 28038 27917 27990 27496 27172 27343 27313 26925 26740 26918 27046
4 27677 28301 27408 28080 27452 27837 27162 27780 27046 26611 26934 26825 26609 26218 26593 26529
5 27585 27504 27616 27705 27863 27826 27102 27073 26633 26380 26509 26507 26361 25949 26339 26248
6 26661 27570 27783 28103 27632 27613 27589 27606 26069 25936 26088 26036 26011 25575 25894 25830
7 27632 27463 27391 27489 27242 27606 27584 26880 25818 25521 25840 25693 25640 25316 25482 25309
8 27657 27392 27302 27627 27038 27244 26594 27163 25196 24997 25035 25023 24712 24685 24668 24540
9 25842 24673 26280 26057 26492 25605 26130 25341 24431 23305 24874 23801 24877 23471 24577 23293
10 23284 25709 25062 26164 25511 27316 25176 24768 23921 22530 23529 22545 23692 22471 24333 22815

View File

@@ -0,0 +1,10 @@
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024
1 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
2 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
3 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
4 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
5 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
6 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
7 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
8 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
9 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024
10 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024

View File

@@ -0,0 +1,10 @@
68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68
136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136
204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204
272,272,272,272,272,272,272,272,272,272,272,272,272,272,272,272
340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340
408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408
476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476
544,544,544,544,544,544,544,544,544,544,544,544,544,544,544,544
612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612
680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680
1 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68
2 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136
3 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204
4 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272
5 340 340 340 340 340 340 340 340 340 340 340 340 340 340 340 340
6 408 408 408 408 408 408 408 408 408 408 408 408 408 408 408 408
7 476 476 476 476 476 476 476 476 476 476 476 476 476 476 476 476
8 544 544 544 544 544 544 544 544 544 544 544 544 544 544 544 544
9 612 612 612 612 612 612 612 612 612 612 612 612 612 612 612 612
10 680 680 680 680 680 680 680 680 680 680 680 680 680 680 680 680

View File

@@ -0,0 +1,10 @@
144555,220822,213172,232589,222368,222022,221525,218740,215112,220198,212562,211353,203128,207854,210719,208961
178200,227914,225423,225667,225283,223689,214874,217351,189550,187027,176077,174967,175908,173784,170924,182629
212976,225907,222606,224129,213339,213864,204105,204116,170180,174156,180857,200021,186592,189103,180464,178768
220934,223204,216938,218089,214767,210852,205644,204681,182606,186172,175972,178235,171769,171199,162172,162394
212311,227349,214553,217104,211690,204241,202456,209851,166727,167536,161323,164796,154234,155004,147491,147138
198643,222201,217982,217089,212032,203211,198104,196038,154107,155668,149685,148698,142482,142935,134505,133011
216171,220305,209239,214638,200728,193354,184005,187582,144618,145480,136990,136957,131445,130896,123050,125646
209897,217355,213187,210719,199503,185380,179740,178260,132461,134694,129448,129059,121525,123736,116539,123906
206870,215563,213613,212218,194167,175278,170315,167466,125147,125812,119401,120362,114225,119599,114065,119403
205266,207631,213265,202704,185616,170020,163365,159203,116459,118558,112154,116339,113771,115710,113130,115851
1 144555 220822 213172 232589 222368 222022 221525 218740 215112 220198 212562 211353 203128 207854 210719 208961
2 178200 227914 225423 225667 225283 223689 214874 217351 189550 187027 176077 174967 175908 173784 170924 182629
3 212976 225907 222606 224129 213339 213864 204105 204116 170180 174156 180857 200021 186592 189103 180464 178768
4 220934 223204 216938 218089 214767 210852 205644 204681 182606 186172 175972 178235 171769 171199 162172 162394
5 212311 227349 214553 217104 211690 204241 202456 209851 166727 167536 161323 164796 154234 155004 147491 147138
6 198643 222201 217982 217089 212032 203211 198104 196038 154107 155668 149685 148698 142482 142935 134505 133011
7 216171 220305 209239 214638 200728 193354 184005 187582 144618 145480 136990 136957 131445 130896 123050 125646
8 209897 217355 213187 210719 199503 185380 179740 178260 132461 134694 129448 129059 121525 123736 116539 123906
9 206870 215563 213613 212218 194167 175278 170315 167466 125147 125812 119401 120362 114225 119599 114065 119403
10 205266 207631 213265 202704 185616 170020 163365 159203 116459 118558 112154 116339 113771 115710 113130 115851

View File

@@ -13,26 +13,24 @@
|* Public *| |* Public *|
\*-------------------------------------*/ \*-------------------------------------*/
class RipplingMath class RipplingMath {
{
/*--------------------------------------*\ /*--------------------------------------*\
|* Constructeur *| |* Constructeur *|
\*-------------------------------------*/ \*-------------------------------------*/
public: public:
__device__ RipplingMath(uint w , uint h , float t) : __device__
RipplingMath(uint w , uint h , float t) :
dim2(w / 2), // dim2(w / 2), //
t(t) t(t) {
{ // rien
// rien
} }
__device__ __device__
virtual ~RipplingMath() virtual ~RipplingMath() {
{
// rien // rien
} }
/*--------------------------------------*\ /*--------------------------------------*\
|* Methode *| |* Methode *|
@@ -41,8 +39,7 @@ class RipplingMath
public: public:
__device__ __device__
void colorIJ(uchar4* ptrColorIJ , int i , int j) void colorIJ(uchar4* ptrColorIJ , int i , int j) {
{
uchar levelGris = levelGray(i, j); // update levelGris uchar levelGris = levelGray(i, j); // update levelGris
ptrColorIJ->x = levelGris; ptrColorIJ->x = levelGris;
@@ -58,13 +55,13 @@ class RipplingMath
// Etape 2: Puis une fois que l'image grise est valider, attaquer rippling // Etape 2: Puis une fois que l'image grise est valider, attaquer rippling
// debug temp // debug temp
// { // {
// ptrColorIJ->x = 128; // ptrColorIJ->x = 128;
// ptrColorIJ->y = 128; // ptrColorIJ->y = 128;
// ptrColorIJ->z = 128; // ptrColorIJ->z = 128;
// ptrColorIJ->w = 255; // opacity facultatif // ptrColorIJ->w = 255; // opacity facultatif
// } // }
} }
private: private:
@@ -74,24 +71,31 @@ class RipplingMath
__inline__ __inline__
__device__ __device__
uchar levelGray(int i , int j ) uchar levelGray(int i , int j ) {
{
float result; float result;
dij(i, j, &result); // warning : dij return void. Ne peut pas etre "imbriquer dans une fonction" dij(i, j, &result); // warning : dij return void. Ne peut pas etre "imbriquer dans une fonction"
result = result / 10.f; result = result / 10.f;
result = 128.f + 127.f * cosf(result - (t / 7.f)) / (result + 1.f);
return (uchar)result;
// TODO Rippling GPU : cf formules math rippling.pdf (attribut dim2 = dim/2 // TODO Rippling GPU : cf formules math rippling.pdf (attribut dim2 = dim/2
} }
__inline__ __inline__
__device__ __device__
void dij(int i , int j , float* ptrResult) void dij(int i , int j , float* ptrResult) {
{
//TODO Rippling GPU cf fonction math pdf //TODO Rippling GPU cf fonction math pdf
float fi = i - dim2;
float fj = j - dim2;
float d = sqrtf(fi * fi + fj * fj);
*ptrResult = d;
// Ne pas utiliser la fonction pow pour elever au carrer ! // Ne pas utiliser la fonction pow pour elever au carrer !
// Utiliser l'opérateur * // Utiliser l'opérateur *
} }
/*--------------------------------------*\ /*--------------------------------------*\
|* Attribut *| |* Attribut *|
@@ -103,7 +107,7 @@ class RipplingMath
int dim2; // dim2=dim/2 int dim2; // dim2=dim/2
float t; float t;
}; };
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -18,12 +18,11 @@ static __device__ void ripplingQuart(uchar4* tabPixelsGM , uint w , uint h , flo
|* Implementation *| |* Implementation *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
__global__ void rippling(uchar4* tabPixelsGM , uint w , uint h , float t) __global__ void rippling(uchar4* tabPixelsGM , uint w , uint h , float t) {
{ // ripplingBaseline(tabPixelsGM, w, h, t);
ripplingBaseline(tabPixelsGM, w, h, t); ripplingDemi(tabPixelsGM, w, h, t);
// ripplingDemi(tabPixelsGM, w, h, t);
// ripplingQuart(tabPixelsGM, w, h, t); // ripplingQuart(tabPixelsGM, w, h, t);
} }
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* private *| |* private *|
@@ -33,23 +32,36 @@ __global__ void rippling(uchar4* tabPixelsGM , uint w , uint h , float t)
* v1 * v1
*/ */
__inline__ __inline__
__device__ void ripplingBaseline(uchar4* tabPixelsGM , uint w , uint h , float t) __device__
{ void ripplingBaseline(uchar4* tabPixelsGM , uint w , uint h , float t) {
// TODO instacier RipplingMath // TODO instacier RipplingMath
RipplingMath rgM = RipplingMath(w, h, t);
const int TID = Thread2D::tid(); const int TID = Thread2D::tid();
const int NB_THREAD = Thread2D::nbThread(); const int NB_THREAD = Thread2D::nbThread();
const int WH = w * h; const int WH = w * h;
// TODO Rippling GPU pattern entrelacement // TODO Rippling GPU pattern entrelacement
int s = TID;
while(s < WH) {
int i = s / w;
int j = s % w;
uchar4 color;
rgM.colorIJ(&color, i, j);
tabPixelsGM[s] = color;
s += NB_THREAD;
} }
}
/** /**
* v2 : optimisation * v2 : optimisation
*/ */
__inline__ __inline__
__device__ void ripplingDemi(uchar4* tabPixelsGM , uint w , uint h , float t) __device__
{ void ripplingDemi(uchar4* tabPixelsGM , uint w , uint h , float t) {
// Indication: // Indication:
// (I1) Utiliser la symetrie horizontale de l'image // (I1) Utiliser la symetrie horizontale de l'image
// (I2) Calculer que la demi partie superieur // (I2) Calculer que la demi partie superieur
@@ -57,14 +69,36 @@ __device__ void ripplingDemi(uchar4* tabPixelsGM , uint w , uint h , float t)
// Partez de la fin de l'image, peut-etre // Partez de la fin de l'image, peut-etre
// TODO Rippling GPU // TODO Rippling GPU
RipplingMath rgM = RipplingMath(w, h, t);
const int TID = Thread2D::tid();
const int NB_THREAD = Thread2D::nbThread();
const int WH = w * h;
const int WH2 = (WH / 2) + 1;
int s = TID;
while(s < WH2) {
int i = s / w;
int j = s % w;
uchar4 color;
rgM.colorIJ(&color, i, j);
tabPixelsGM[s] = color;
// Miroir
int si = WH - s - 1;
tabPixelsGM[si] = color;
s += NB_THREAD;
} }
}
/** /**
* v3 : optimsation : defi (difficile) (pas necessaire pour test performance) * v3 : optimsation : defi (difficile) (pas necessaire pour test performance)
*/ */
__inline__ __inline__
__device__ void ripplingQuart(uchar4* tabPixelsGM , uint w , uint h , float t) __device__
{ void ripplingQuart(uchar4* tabPixelsGM , uint w , uint h , float t) {
// Indication: // Indication:
// (I1) Utiliser la symetrie horizontale et verticale de l'image // (I1) Utiliser la symetrie horizontale et verticale de l'image
// (I2) Calculer que le quart en huat a gauche // (I2) Calculer que le quart en huat a gauche
@@ -76,9 +110,8 @@ __device__ void ripplingQuart(uchar4* tabPixelsGM , uint w , uint h , float t)
// (C1) Utiliser toujours le pattern d'entrelacement // (C1) Utiliser toujours le pattern d'entrelacement
// TODO Rippling GPU // TODO Rippling GPU
} }
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -24,19 +24,17 @@ extern __global__ void rippling(uchar4* tabPixelsGM,uint w, uint h,float t);
\*-------------------------*/ \*-------------------------*/
Rippling::Rippling(const Grid& grid , uint w , uint h , float dt , bool isVerbose) : Rippling::Rippling(const Grid& grid , uint w , uint h , float dt , bool isVerbose) :
Animable_I<uchar4>(grid, w, h, "Rippling-Cuda-uchar4", isVerbose) // super classe Animable_I<uchar4>(grid, w, h, "Rippling-Cuda-uchar4", isVerbose) { // super classe
{
assert(w == h); // specific rippling assert(w == h); // specific rippling
// Animation // Animation
this->dt = dt; this->dt = dt;
this->t = 0; // protected dans Animable this->t = 0; // protected dans Animable
} }
Rippling::~Rippling() Rippling::~Rippling() {
{
// rien // rien
} }
/*-------------------------*\ /*-------------------------*\
|* Methode *| |* Methode *|
@@ -48,25 +46,22 @@ Rippling::~Rippling()
* *
* Note : domaineMath pas use car image pas zoomable * Note : domaineMath pas use car image pas zoomable
*/ */
void Rippling::process(uchar4* tabPixelsGM , uint w , uint h , const DomaineMath& domaineMath) void Rippling::process(uchar4* tabPixelsGM , uint w , uint h , const DomaineMath& domaineMath) {
{
// TODO Rippling // TODO Rippling
// lancer le kernel avec <<<dg,db>>> // lancer le kernel avec <<<dg,db>>>
// le kernel est importer ci-dessus (ligne 19) // le kernel est importer ci-dessus (ligne 19)
assert(false); // to delete once implement rippling<<<dg,db>>>(tabPixelsGM,w,h,t);
} }
/** /**
* Override * Override
* Call periodicly by the API * Call periodicly by the API
*/ */
void Rippling::animationStep() void Rippling::animationStep() {
{
t += dt; t += dt;
} }
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/

View File

@@ -10,8 +10,7 @@
|* Declaration *| |* Declaration *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
class Rippling: public Animable_I<uchar4> class Rippling: public Animable_I<uchar4> {
{
/*--------------------------------------*\ /*--------------------------------------*\
|* Constructor *| |* Constructor *|
\*-------------------------------------*/ \*-------------------------------------*/
@@ -50,7 +49,7 @@ class Rippling: public Animable_I<uchar4>
// Inputs // Inputs
float dt; float dt;
}; };
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

View File

@@ -11,30 +11,27 @@
|* Impelmentation *| |* Impelmentation *|
\*---------------------------------------------------------------------*/ \*---------------------------------------------------------------------*/
namespace rippling namespace rippling {
{
class BestGrid class BestGrid {
{
public: public:
static Grid get() static Grid get() {
{ const int MP = Hardware::getMPCount();
const int MP = Hardware::getMPCount(); const int CORE_MP = Hardware::getCoreCountMP();
const int CORE_MP = Hardware::getCoreCountMP();
// TODO Rippling // TODO Rippling
dim3 dg(MP, 1, 1);
dim3 db(CORE_MP, 4, 1);
Grid grid(dg, db);
return grid;
// to remove once coded
{
Couts::redln("aie aie aie, your best grid won t build itself");
assert(false);
}
} }
}; };
} }
/*----------------------------------------------------------------------*\ /*----------------------------------------------------------------------*\
|* End *| |* End *|

Some files were not shown because too many files have changed in this diff Show More