23
Módulo V Bibliotecas Otimizadas

Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Embed Size (px)

Citation preview

Page 1: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Módulo V

Bibliotecas Otimizadas

Page 2: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Bibliotecas de OtimizaçãoBibliotecas otimizadas para os processadores Intel ® XScale™

Disponíveis e no site

PCA Developer Networkhttp://www.intel.com/pca

Page 3: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Intel ® IPP/GPP Library Integrated Performance Primitives (IPP)

Funções DSP

Áudio

Codecs de vídeo

Criptografia (novo na versão 4)

Graphics Performance Primitives (GPP)Funções geométricas

Funções gráficas

Licenciado a baixo custo em microprocessadores Intel® XScale™

Page 4: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Intel ® IPP Library

FFT, IFFT, DCT, IDCT

Average, FIR, Median, etc...

RGB, YUV, YCbCr, YCC, etc...

Erode and Dilate

Norms, Moment

Add, Sub, Mul, Sqr, Set, Zero,etc.

Transformações

Filtros

Conversão de Cores

Morfologia

Estatísticas de Vetores

Manipulação de Vetores

Page 5: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Intel ® IPP Codec Library

GSM-AMR G.723.1

MP3 Decoder

MPEG-4 Decoder H.263 Decoder

JPEG

Fala

Áudio

Vídeo

Imagem

Page 6: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Intel ® GPP Library

Ponto Flutuante Ponto Fixo

Mul, SQ, Div, Inv

Div, Inv, Sqrt, Inv Sqrt Sin, Cos, SinCos

Add, Sub, Scale, Dot, Cross, Length, Normalize, Transform

Identity, Translate, Scale, RotX, RotY, RotZ, Multiply

Conversão de Tipo de Dado

Aritmética com ponto fixo

Com aproximações

Trigonometria

Vetor

Matriz

Scanline(F/G, +/-Z, +/-T(M/A/D)) Rasterização

Page 7: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Formato Ponto Fixo IPP/GPP usam o formato de ponto fixo

Algumas funções usam Q15.16, algumas Q0.15, algumas permitem especificar o n de Qm.n

Formato Qm.n n especifica quantos bits disponíveis para a parte fracionária

Precisão de 2n

m especifica o número de bits da parte inteira.

1 bit reservado para o sinal Exemplo: Q16.15

-216 215 21 20 2-1 2-14 2-15... ...b31 b30 b16 b15 b14 b1 b0

Page 8: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Operações com Ponto Fixo

Multiplicação a=1,5; em Q15.16 → 1,5*216=98304 b=0,5; em Q15.16 → 0,5*216=32768 Somando a e b → 98304+32768=131072=2,0*216

((1,5+0,5)*216)/216

Q15.16Q15.16

O resultado deverá ser dividido por 216 (65536 )

Page 9: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Precisão Interna da Biblioteca

O resultado deve ser deslocado para baixo

unsigned long tmp, result;unsigned short data;

tmp = data << 8;gppSqrtHP_n_32s(tmp1,&result,8);data = result >> 8;

Um número Q15.0 precisa ser antes deslocado para cima, reservando assim espaço para os valores fracionários

O dado está no formato Q15.0, desloca-se 8 bits para esquerda criando

espaço para uma melhor precisão. Então o número

está no formato Q23.8. Depois da chamada, o dado

retornado deve ser deslocando mais uma vez

de 8 bits para a direita.

Page 10: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Esquema dos Nomes IPP ipp<domain><operation>_<function-specific

modifier>_<datatype>_<data modifier> (parameter list) domain: funcionalidade do subconjunto

s - “signal processing.”

operation: comportamento da função FFTFwd – FFT Forward

function-specific modifier: especifica melhor a operação RToCCSL128 – Real para “Complex Conjugate Symmetric” com

128 pontos

Page 11: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Esquema dos Nomes IPP ipp<domain><operation>_<function-specific

modifier>_<datatype>_<data modifier> (parameter list) datatype: especifica o número de bits e/ou a disposição dos

dados: #<u|s>[c] 16s – 16 bits com sinal (tipo dos parâmetros de entrada e saída) 16s32sc - 16 bits de entrada com sinal e 32 bits de saída

complexos com sinal

data modifier : dados associados com a operação D1 – sinal de uma dimensão; D2 – sinal de duas dimensões; I –

operação “in-place”; Sfs – operação com saturação.

parameter list: Lista de parâmetros (podem ser tipos IPP ou não)

Page 12: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Esquema dos Nomes IPP

IppStatus ippsSet_16s(Ipp16s val,

Ipp16s * pDst,

int len);

IppStatus ippsFFTFwd_RToCCSL128_16s32sc(const Ipp16s * pSrc,

Ipp32sc * pDst);IppStatus ippsAddC_16s_ISfs(

Ipp16s val,

Ipp16s * pSrcDst,

int len,

int scaleFactor);

Page 13: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Esquema dos Nomes GPP gpp<graphics/data entity>

<action>_<fraction_part>_<datatype> (parameter list) graphics/data entity: tipo de funcionalidade

Vet3D; Matrix4x4

action: comportamento da função SinCos – cálculo de seno e coseno

fraction_part: especifica a parte fracionária 16, 32 ou n que indica n bits para representação fracionária

datatype: especifica o número de bits e/ou a disposição dos dados: #<u|s>[c] (#=16 ou 32)

Page 14: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Esquema dos Nomes GPPGppStatus gppSinCosHP_n_32s (

I32 theta,

I32* sin_theta,

I32* cos_theta,

U32 n);

GppStatus gppDiv_16_32s(I32 num,

I32 denom,

I32* pDst);

GppStatus gppDiv_n_32s(I32 num,

I32 denom,

I32* pDst,

U32 n);

Page 15: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

quad_eqn(I32 a, I32 b, I32 c, U32 n, I32 *r1, I32 *r2) { I32 val1, val2, sqrt_val, num1, num2, den;

gppSquare_n_32s(b, &val1, n); // Eleva ao quadrado gppMul_n_32s(a, c, &val2, n); // a*c val2 <<= 2; //*4 gppSqrtHP_n_32s((val1 – val2), &sqrt_val, n); num1 = -b – sqrt_val; num2 = -b + sqrt_val; den = a << 1; gppDiv_n_32s(num1, den, r1, n); gppDiv_n_32s(num2, den, r2, n);}

Cálculo das Raízes de uma Equação do 2o Grau

Page 16: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

IPP/GPP Library – Ajustando a IDE Insira o caminho dos

arquivos .lib

C:\ARQUIVOS DE PROGRAMAS\INTEL CORPORATION\GPP\LIB

C:\ARQUIVOS DE PROGRAMAS\INTEL CORPORATION\IPP\ IPPWMMX40\LIB

Page 17: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

IPP/GPP Library – Ajustando a IDE Insira o caminho dos

arquivos .h C:\ARQUIVOS DE

PROGRAMAS\INTEL CORPORATION\GPP\INCLUDE

C:\ARQUIVOS DE PROGRAMAS\INTEL CORPORATION\IPP\ IPPWMMX40\INCLUDE

Page 18: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

IPP/GPP Library – Ajustando a IDE

Aquivos que terminam com _r são para release

Arquivos que terminam com _d são para debug

Adicione o arquivo da biblioteca para a guia de ligação em Project->Settings

Page 19: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Arquivos binários de imagem das Intel IPP para Windows

Tipos de funções Pocket PC ou Smartphone

Processamento de SinaisippSP_WMMX40PPC_r.lib

ippSP_WMMX40PPC_d.lib

CODEC de ÁudioippAC_WMMX40PPC_r.lib

ippAC_WMMX40PPC_d.lib

CODEC de VídeoippVC_WMMX40PPC_r.lib

ippVC_WMMX40PPC_d.lib

CODEC de VozippSC_WMMX40PPC_r.lib

ippSC_WMMX40PPC_d.lib

Page 20: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Arquivos binários de imagem das Intel IPP para Windows

Tipos de funções Pocket PC ou Smartphone

Processamento de ImagensippIP_WMMX40PPC_r.lib

ippIP_WMMX40PPC_d.lib

CODEC JPEGippJP_WMMX40PPC_r.lib

ippJP_WMMX40PPC_d.lib

CriptografiaippCP_WMMX40PPC_r.lib

ippCP_WMMX40PPC_d.lib

Áudio Toolkit APIippSR_WMMX40PPC_r.lib

ippSR_WMMX40PPC_d.lib

Page 21: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Arquivos binários de imagem das Intel GPP para Windows

• Apenas um arquivo • gppXSC11_r.lib ou• gppXSC11_d.lib

Page 22: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Intel ® Compiler Library O Compilador Intel possui uma biblioteca em tempo

de execução (run-time) ligada estaticamente

A biblioteca possui funções de alta performance para raiz quadrada, multiplicação com ponto flutuante, divisão, divisão inteira, etc.

É possível usar a biblioteca sem usar o compilador da Intel (mesmo não sendo muito conveniente fazer isso)

Você pode encontrar informações detalhadas na seção libraries da ajuda do compilador da Intel, em Tools->Intel Help

Page 23: Módulo V Bibliotecas Otimizadas. Bibliotecas de Otimização Bibliotecas otimizadas para os processadores Intel ® XScale Disponíveis e no site PCA Developer

Módulo V

Laboratório