[Gate-users] How can I speed up the simulation

Ezzat Elmo ezzat.elmo at gmail.com
Wed Jan 18 10:06:53 CET 2017


Good day all

Dear Liliana,

Thanks for your respond,
I'll look into the points you mentioned, I'm currently more interested in
cluster tools and running on GPU.
as for the GPU issue,
I did follow the links and did everything by detail, one thing i changed
from the guide is not installing the SDK since as you said it comes with
the CUDA toolkit. however i got a new error and im hoping someone can help
me with it. By the look of it I'm guessing something is wrong with the
compilation of either the CUDA drivers or the gcc (I'm using 4.8.4).

Thanks again for your help,
Ezzat

####
gate at gate:~/Desktop/gate/gate_v7.2-build$ make
[  2%] Built target itkzlib
[  6%] Built target MetaIO
[  6%] Building NVCC (Device) object
CMakeFiles/Gate.dir/source/gpu/src/./Gate_generated_GateGPUManager.cu.o
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h(432): error: identifier
"nullptr" is undefined

/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h(432): error: expected a
";"

/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h(190): error:
expected a ";"

/usr/include/c++/4.8/exception(63): error: expected a ";"

/usr/include/c++/4.8/exception(68): error: expected a ";"

/usr/include/c++/4.8/exception(76): error: expected a ";"

/usr/include/c++/4.8/exception(83): error: expected a ";"

/usr/include/c++/4.8/exception(93): error: expected a "{"

/usr/include/c++/4.8/bits/exception_ptr.h(64): error: function
"std::current_exception" returns incomplete type
"std::__exception_ptr::exception_ptr"

/usr/include/c++/4.8/bits/exception_ptr.h(64): error: expected a "{"

/usr/include/c++/4.8/bits/exception_ptr.h(79): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(81): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(82): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(84): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(86): error: declaration is
incompatible with previous "std::current_exception"
(64): here

/usr/include/c++/4.8/bits/exception_ptr.h(86): error: use of a local type
to declare a function

/usr/include/c++/4.8/bits/exception_ptr.h(86): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(87): error: use of a local type
to declare a function

/usr/include/c++/4.8/bits/exception_ptr.h(90): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(92): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(95): error: incomplete type is
not allowed

/usr/include/c++/4.8/bits/exception_ptr.h(95): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(116): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(126): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(143): error: use of a local type
to declare a function

/usr/include/c++/4.8/bits/exception_ptr.h(144): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(147): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(152): error: use of a local type
to declare a function

/usr/include/c++/4.8/bits/exception_ptr.h(153): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(156): error: use of a local type
to declare a function

/usr/include/c++/4.8/bits/exception_ptr.h(157): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(160): error: use of a local type
to declare a function

/usr/include/c++/4.8/bits/exception_ptr.h(161): error: expected a ";"

/usr/include/c++/4.8/bits/exception_ptr.h(169): error: expected a ";"

/usr/include/c++/4.8/bits/nested_exception.h(57): error: incomplete type is
not allowed

/usr/include/c++/4.8/bits/nested_exception.h(60): error: expected a ";"

/usr/include/c++/4.8/bits/nested_exception.h(66): error: expected a ";"

/usr/include/c++/4.8/bits/nested_exception.h(70): error: identifier
"rethrow_exception" is undefined

/usr/include/c++/4.8/bits/nested_exception.h(73): error: function
"std::nested_exception::nested_ptr" returns incomplete type
"std::__exception_ptr::exception_ptr"

/usr/include/c++/4.8/new(95): error: expected a "{"

/usr/include/c++/4.8/new(110): error: identifier "__p" is undefined

/usr/include/c++/4.8/new(111): error: expected a "{"

/usr/include/c++/4.8/new(115): error: expected a "{"

/usr/include/c++/4.8/new(116): error: expected a "{"

/usr/include/c++/4.8/bits/cpp_type_traits.h(184): error: identifier
"char16_t" is undefined

/usr/include/c++/4.8/bits/cpp_type_traits.h(191): error: identifier
"char32_t" is undefined

/usr/include/c++/4.8/bits/cpp_type_traits.h(191): error: class
"std::__is_integer<<error-type>>" has already been defined

/usr/include/c++/4.8/bits/cpp_type_traits.h(314): error: namespace
"std::__gnu_cxx" has no member "__normal_iterator"

/usr/include/c++/4.8/bits/cpp_type_traits.h(314): error: expected a ">"

/usr/include/c++/4.8/cmath(80): error: inline specifier allowed on function
declarations only

/usr/include/c++/4.8/cmath(80): error: expected a ";"

/usr/include/c++/4.8/cmath(105): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(105): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(105): error: expected a ";"

/usr/include/c++/4.8/cmath(124): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(124): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(124): error: expected a ";"

/usr/include/c++/4.8/cmath(143): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(143): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(143): error: expected a ";"

/usr/include/c++/4.8/cmath(162): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(162): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(162): error: expected a ";"

/usr/include/c++/4.8/cmath(183): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(183): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(183): error: expected a ";"

/usr/include/c++/4.8/cmath(202): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(202): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(202): error: expected a ";"

/usr/include/c++/4.8/cmath(221): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(221): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(221): error: expected a ";"

/usr/include/c++/4.8/cmath(240): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(240): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(240): error: expected a ";"

/usr/include/c++/4.8/cmath(259): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(259): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(259): error: expected a ";"

/usr/include/c++/4.8/cmath(278): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(278): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(278): error: expected a ";"

/usr/include/c++/4.8/cmath(297): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(297): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(297): error: expected a ";"

/usr/include/c++/4.8/cmath(328): error: "constexpr" is not a function or
static data member

/usr/include/c++/4.8/cmath(337): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(337): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(337): error: expected a ";"

/usr/include/c++/4.8/cmath(356): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(356): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(356): error: expected a ";"

/usr/include/c++/4.8/cmath(375): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(375): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(375): error: expected a ";"

/usr/include/c++/4.8/cmath(406): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(406): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(406): error: expected a ";"

/usr/include/c++/4.8/cmath(443): error: inline specifier allowed on
function declarations only

/usr/include/c++/4.8/cmath(443): error: variable "std::constexpr" has
already been defined

/usr/include/c++/4.8/cmath(443): error: expected a ";"

Error limit reached.
100 errors detected in the compilation of
"/tmp/tmpxft_00006b8f_00000000-9_GateGPUManager.compute_30.cpp1.ii".
Compilation terminated.
CMake Error at Gate_generated_GateGPUManager.cu.o.cmake:264 (message):
  Error generating file

/home/gate/Desktop/gate/gate_v7.2-build/CMakeFiles/Gate.dir/source/gpu/src/./Gate_generated_GateGPUManager.cu.o


make[2]: ***
[CMakeFiles/Gate.dir/source/gpu/src/./Gate_generated_GateGPUManager.cu.o]
Error 1
make[1]: *** [CMakeFiles/Gate.dir/all] Error 2
make: *** [all] Error 2
###############

On Tue, Jan 17, 2017 at 6:50 PM, Liliana Caldeira <llcaldeira at gmail.com>
wrote:

> Dear Ezzat,
>
> Regarding your two questions:
> 1. How to make GATE work with GPU: http://wiki.opengatecollaborat
> ion.org/index.php/Compilation_Instructions_V7.2#GPU_.26_CUDA_tools
> In the french link, I go to the 14.04 or 16.04 version:
> http://doc.ubuntu-fr.org/cuda (not 11.4, but maybe you are in a different
> page).
> Before you use GATE for GPU, you need to download 2 packages which are the
> CUDA toolkit provided by NVIDIA and the GPU computing SDK.
> However, as far as I understood SDK comes together with the toolkit now (
> https://developer.nvidia.com/cuda-toolkit), therefore in cmake they
> should point to the same folder.
> Cuda toolkit instructions here: https://developer.nvidia.com/c
> uda-downloads
>
> 2. There are many ways to increase the simulation performance besides GPUs:
> - output, e.g. ROOT output is usually faster than ASCII output. Only save
> the events that you are interested in (Hits, Singles, Coincidences).
> - using cuts
> - not using voxelized phantoms unless necessary
> - using cluster tools, if you have access to several CPUs.
>
> I hope this helps a little bit.
>
> Cheers,
> Liliana
>
>
> On 15 January 2017 at 10:44, Ezzat Elmo <ezzat.elmo at gmail.com> wrote:
>
>> Good day everyone,
>>
>> so I've been using v-Gate for over a year now and few weeks ago I decided
>> to start using the full version on a Linux based system hoping it will
>> improve the simulation speed.
>>
>> it did work, but the improvement was about just 10% and i was hoping it
>> would have been more.
>> so i was interested to run it on the GPU to see how much it will improve
>> the speed.
>>
>> so i have two questions:
>> 1- how to make gate work using GPU? i tried to work it out following the
>> wiki page, but the cuda section is in France and when I translate it and
>> followed it turns out its for Ubuntu 11.4 while I'm using Ubuntu 14.04.
>>
>> 2- is there any other way than the GPU to accelerate the simulation
>> performance ?
>>
>> Thanks for your time and looking forward to here back from you.
>>
>> Ezzat
>>
>> _______________________________________________
>> Gate-users mailing list
>> Gate-users at lists.opengatecollaboration.org
>> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opengatecollaboration.org/mailman/private/gate-users/attachments/20170118/2320f188/attachment-0001.html>


More information about the Gate-users mailing list