IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux  >

Утилиты Cell/B.E. SDK 3.0: Часть 1. Использование средств измерения производительности

Изучаем практический пример использования средств измерения производительности, входящих в состав SDK 3.0

developerWorks
На предыдущую страницуСтраница 3 из 9 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Подготовка и сборка для профилирования

Выполните следующие шаги для подготовки структуры дерева проекта в режиме «песочницы», чтобы иметь больше гибкости при изменении и создании файлов.

Шаг 1. Копирование приложения из дерева SDK

Работа с деревом в режиме «песочницы» означает, что у вас есть собственная копия проекта в доступном месте (например, в домашнем каталоге). Для этого выполните команду cp -R /opt/cell/sdk/demos/FFT16M ~/.

Шаг 2. Подготовка make-файла

Перейдите к созданной структуре проекта и найдите make-файлы. Вы должны найти три таких файла:

  • ~/FFT16M/Makefile
  • ~/FFT16M/ppu/Makefile
  • ~/FFT16M/spu/Makefile

Затем необходимо внести несколько изменений в make-файлы для предотвращения попыток с их стороны установить исполняемые файлы обратно в дерево SDK. Кроме того, добавим необходимые флаги компиляции для данных профилирования. В листинге 1 приведен пример изменения файла ~/FFT16M/ppu/Makefile.


Листинг 1. Изменение файла ~/FFT16M/ppu/Makefile для gcc
                    
#######################################################################
##     Target
#######################################################################
#

PROGRAM_ppu= fft

#######################################################################
##     Objects
#######################################################################
#

IMPORTS = ../spu/fft_spu.a -lspe2 -lpthread -lm -lnuma

#INSTALL_DIR= $(EXP_SDKBIN)/demos
#INSTALL_FILES= $(PROGRAM_ppu)
LDFLAGS_gcc = -Wl,-q
CFLAGS_gcc = -g

#######################################################################
##      buildutils/make.footer
#######################################################################
#

ifdef CELL_TOP
   include $(CELL_TOP)/buildutils/make.footer
else
   include ../../../../buildutils/make.footer
endif

Обратите внимание, что:

  • Директивы установки закомментированы.
  • Не требуется других изменений, за исключением описанных.
  • Имеются специфические изменения, зависящие от того, какой компилятор используется – gcc или xlc.
Теперь взгляните на листинг 2.


Листинг 2. Изменение файла ~/FFT16M/ppu/Makefile для gcc
                    
#######################################################################
##      Target
#######################################################################
#

PROGRAM_ppu= fft

#######################################################################
##      Objects
#######################################################################
#

PPU_COMPILER = xlc

IMPORTS = ../spu/fft_spu.a -lspe2 -lpthread -lm -lnuma

#INSTALL_DIR= $(EXP_SDKBIN)/demos
#INSTALL_FILES= $(PROGRAM_ppu)
LDFLAGS_xlc = -Wl,-q
CFLAGS_xlc = -g

#######################################################################
##       buildutils/make.footer
#######################################################################
#

ifdef CELL_TOP
   include $(CELL_TOP)/buildutils/make.footer
else
   include ../../../../buildutils/make.footer
endif

В код добавлены флаги компиляции -g и -Wl,-qдля предотвращения перекомпоновки и добавления информации о номерах строк в выходной исполняемый файл. В листинге 3 приведен файл ~/FFT16M/spu/Makefile, измененный для компилятора gcc. В листинге 4 приведен файл ~/FFT16M/spu/Makefile, измененный для компилятора xlc.


Листинг 3. Изменение файла ~/FFT16M/spu/Makefile для gcc
                    
#######################################################################
##       Target
#######################################################################
#

PROGRAMS_spu:= fft_spu
LIBRARY_embed:= fft_spu.a

#######################################################################
##       Local Defines
#######################################################################
#

CFLAGS_gcc:= -g --param max-unroll-times=1 # needed to keep size of
program down
LDFLAGS_gcc = -Wl,-q -g

#######################################################################
##       buildutils/make.footer
#######################################################################
#

ifdef CELL_TOP
   include $(CELL_TOP)/buildutils/make.footer
else
   include ../../../../buildutils/make.footer
endif


Листинг 4. Изменение файла ~/FFT16M/spu/Makefile для xlc
                    
#######################################################################
##       Target
#######################################################################
#

SPU_COMPILER = xlc
PROGRAMS_spu:= fft_spu
LIBRARY_embed:= fft_spu.a

#######################################################################
##       Local Defines
#######################################################################
#

CFLAGS_xlc:= -g -qnounroll -O5
LDFLAGS_xlc:= -O5 -qflag=e:e -Wl,-q -g

#######################################################################
##       buildutils/make.footer
#######################################################################
#

ifdef CELL_TOP
   include $(CELL_TOP)/buildutils/make.footer
else
   include ../../../../buildutils/make.footer
endif

Перед окончательной сборкой убедитесь, что используется компилятор по умолчанию. Для этого выполните команду /opt/cell/sdk/buildutils/cellsdk_select_compiler [gcc|xlc].

Теперь можно приступать к сборке при помощи команды cd ~/FFT16M ; CELL_TOP=/opt/cell/sdk make.



В начало



На предыдущую страницуСтраница 3 из 9 На предыдущую страницу
    IBM в России Конфиденциальность Контакты