Для (1) я бы начал с Shark, хотя бы потому, что это самый простой в использовании инструмент.Просто запустите Shark, наведите его на свою программу и нажмите кнопку, чтобы собрать образцы.Это даст вам довольно хорошие данные выборки, которые должны показать вам, какие подпрограммы (или участки кода) являются узкими местами.Возможно, вам будет полезно создавать свои программы с отладочной информацией -g
, поскольку это может немного облегчить чтение следов Акулы.
Для (2), не зная больше, что вы делаетеневозможно знать, подходит ли OpenCL для вашей проблемы или нет.Сначала найдите узкие места, а затем подумайте, как их решить.Не зацикливайтесь на идее использования той или иной технологии, пока не знаете, для чего будете ее использовать.