{"id":11512,"date":"2014-03-03T01:01:07","date_gmt":"2014-03-02T23:01:07","guid":{"rendered":"http:\/\/hgpu.org\/?p=11512"},"modified":"2014-03-03T01:01:07","modified_gmt":"2014-03-02T23:01:07","slug":"computational-optimization-of-a-time-domain-beamforming-algorithm-using-cpu-and-gpu","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=11512","title":{"rendered":"Computational Optimization of a Time-Domain Beamforming Algorithm Using CPU and GPU"},"content":{"rendered":"<p>In 2010, a special time-domain beamforming algorithm was presented at the Berlin Beamforming Conference [3]. This algorithm is primarily designed for the sound source localization on moving objects with known velocity (e.g. freight trains). By determining the object trajectory, the acoustic map&#8217;s quality can be improved with respect to the Doppler effect. The bottleneck of the algorithm is the time-consuming computational evaluation. Although computational effiency was considered in the algorithm&#8217;s first implementation, it can take on hour or more to calculate an acoustic map for a passing train on a regular personal computer. There are several factors which affect the evaluation time, e.g. sampling rate, train speed or the train&#8217;s length. This paper mainly focusses on the computational implementation of the time-domain beamforming algorithm using CPU (Central Processing Unit) and GPU (Graphics Processing Unit). In general, the implementation on a CPU is rather straight foward if common parallelization libraries are used (e.g. OpenMP), offering only a few variation opportunities. The realizable speed-up is proportional to the number of physical cores in a CPU, and can attain a factor of 8 on recent workstations. Implementing the beamforming algorithm on a GPU with CUDA (Compute Unified Device Architecture) is more complicated and requires substantial knowledge of the GPU&#8217;s processor architecture. Nevertheless, speed-ups of 30 times or even more compensate the high implementation effort. Additionally, a modification of the algorithm according to [3] is presented. Specific calculation coefficients called &quot;beamfactors&quot; are introduced, which represent the shading factors in time-domain beamforming. Precomputing those factors before beamforming can reduce the evaluation time by a factor of 2, regardless of the computational implementation and the computer system used. Although the beamfactors-algorithm offers a sufficient reduction of computational costs, it has been parallelized on CPU and GPU as well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In 2010, a special time-domain beamforming algorithm was presented at the Berlin Beamforming Conference [3]. This algorithm is primarily designed for the sound source localization on moving objects with known velocity (e.g. freight trains). By determining the object trajectory, the acoustic map&#8217;s quality can be improved with respect to the Doppler effect. The bottleneck of [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[36,11,89,3],"tags":[1787,1782,14,20,1091,1009],"class_list":["post-11512","post","type-post","status-publish","format-standard","hentry","category-algorithms","category-computer-science","category-nvidia-cuda","category-paper","tag-algorithms","tag-computer-science","tag-cuda","tag-nvidia","tag-nvidia-geforce-gtx-570","tag-nvidia-quadro-fx-3800"],"views":2616,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/11512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11512"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/11512\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}