Thursday, March 29, 2012

Tuesday, March 27, 2012

OpenMP :)

TI device로 심플 OpenMP테스트 해본 결과 10% 정도 빨라 지는걸 확인 하였다..
하지만 Omap 4430 프라다 의 경우 듀얼 코어 뿐이므로 별로 기대를....

Nvidia 쿼드 코어 ap30 소스 받아서 한번 툴체인 바꾸고 해봐야 겠다..
아.... 되니깐 이리 할게 많아 지는구나 ^^;
퀄컴... 신발... 내 3주를 돌려줘 ㅠ

Friday, March 23, 2012

아...놔.. openMP

지금까지 Qcom 꺼 디바이스로 계속 시도 하고 있었는데 한 4주동안...
TI꺼로 해보라고 하시는 말씀 듣고 TI꺼로 linaro toolchain 으로 빌드 하니깐...
잘 돌아 간다.. 아놔... 왜.... ㅠㅠ
아마 Qcom쪽에서 OBJ을 주는게 싱크가 안맞나 부다

openMP이제 해보자 !! 아자아자

Wednesday, March 21, 2012

Tuesday, March 20, 2012

Linaro 밑 받은 메일 총정리 ㅋ

OpenMP 에 관해서 여려가지 질문을 했다.. linaro랑 google에게
linaro 답장


Hi,
Apparently, people have already started experimenting in this area. See http://groups.google.com/group/android-ndk/browse_thread/thread/a547eac5446035b4?pli=1
We are definitely interested in contributions in this area (patches, benchmarks...). Don't hesitate to keep us posted on your progress in this area.
Thanks,
Michael.
원래 저 링크에 있는 사람이랑 이야기 하고 있어서 또 그사람 한테 물어 봤다. 답장.
Sean,

  When you use the patched ics tool chain, you specify on the compile/link step to use OpenMP.  From there it should include the header files and libraries for OpenMP.

  The tool chain is basically the same as the ones that ship with the NDK, but patched/rebuilt with OpenMP enabled.

난 프레임 워크에서 쓰고 싶은거니깐. 근데 신기 하게 이놈은 header 파일이랑 libraries 만 넣어서 된다는거다..
응? 그럼 지금 내가 하고 있는것도 되야 하는데?
란 생각과 함께 최대한 툴체인 안바꾸고도 가능 하겠네 란 생각이 들었다..
여튼 패치 받고 해봐야 겠다..


Tuesday, March 13, 2012

openMP

빌드는 되었는데...
툴체인으로 프레임 워크 단에서 한곳만 따로 빌드는 성공 했는데
안돌아 간다..
세그폴트 뜬다 ㅠㅠ;(
어째야 할까 ㅠㅠ 에혀

정말 쓸수 있긴 하는걸까 ㅠ

Monday, March 12, 2012

Almost get there OpenMP

툴체인을 빌드 하고
libstdc++.so.6 에러도 잡고
해서 안드로이드 소스를 빌드 했는데
omp.h를 잡는데
openMP APIs 하나도 못잡는다
왜이러지 하면서 구글링 해봤는데
컨피규어에서 --disable-libgomp 하란다 응?? 그럼 안쓴다는거 아닌가
툴체인을 빌드 하면서 계속 해서
--enable-libgomp 를 했었는데
이렇게 하면 internal libgomp 를 statically 하게 사용 하는걸 인에이블 하는거였다...
아 이러면 안되는데
--disable-libgomp 하고 빌드 하고
Android.mk 에서
LOCAL_CXX잡아주고
LOCAL_CFLAGS += -fopenmp해주고
빌드 해보련다...
거의 다온거 같다.. 끝이 보이는듯하다.

Sunday, March 11, 2012

요새 본 영화중 가장 재미 있게 본 영화.. 특히.. 하늘 나는 그 장면은 ㅠㅠ

Thursday, March 8, 2012

OpenMP Continue...;)

다시 새로운 빛 등장.. 두둥...
안드로이드에 보면

LOCAL_CCIf you want to use a different C compiler for this module, set LOCAL_CC to the path to the compiler. If LOCAL_CC is blank, the appropriate default compiler is used.
라는 놈이 있다.. 컴파일러를 바꿔 주는것이다.
4.6 을 쓰기 위한 처절한 노력 끝에 이놈을 쓰기로 결정
지금 내가 하고 있는 프래임 워크 단에서


 # SJIT: Enabling openMP Using different toolchain -Sean2.kim@lge.com
 23 # =================================================================
 24 LOCAL_CC := prebuilt/linux-x86/toolchain/android-toolchain-eabi-4.6.3/bin/arm-linux-androideabi-gcc
 25 LOCAL_LDLIBS := -lpthread -fopenmp
 26 LOCAL_C_INCLUDE := prebuilt/linux-x86/toolchain/android-toolchain-eabi-4.6.3/arm-linux-and    roideabi/lib
 27 # =================================================================

이런식으로 넣어 주고 내가 빌드한 컴파일러 연결
라이브러리 연결
빌드중..
되었으면 좋겠다..
되었으면 좋겠다... 한국 가자 ㅠ

Tuesday, March 6, 2012

libgomp continueeeeee;(

이제 발생한 문제
내 빌드 써버는 gcc 버전이 4.4 인데
4.6버전으로 툴체인을 빌드 하기 위해선 필요한 것들이 생긴다..
이 문제를 잠깐 막아 보기 위해서
내 폴더 상단에서
bin 와 lib폴더들을 만들고
export로 LD_LIBRARY_PATH , PATH를 지정해 두었는데
이건 매번 바꿔 줘야 하기때문에 잠시만 이렇게 해두고..
먼저 일단 빌드 되는걸 봐야 할거 같다..

OpenMP continue ;)

Toolchain 이 문제다.. Toolchain 에서 $grep -RHn disable-libgomp . 을 해보면 바이너리들이 libgomp 를  disable 하고 있는게 나온다 ..
그래서 컨피규레이션을 바꾸고 했었지만 알게된 사실은 거기서 바꿔 봐야 bin은 바뀌지 않는 다는거.

linaro 에서 툴체인 받고 gcc4.6 버전으로 받고 안드로이드 툴체인을 빌드 해 보니
bin에서 libgomp 를 Enable 하고 있다 오예~

그 툴체인으로 빌드 중에 vm쪽에서 에러가 떳는데 확인중...
뭔가 진전이 보인다.

Monday, March 5, 2012

grep 으로 찾고 multi 파일 sed로 바꾸기

요즘 내가 자주 쓰는 것중 하나
Hyung이라는 text가 들어 있는 파일을 찾아 Hyung을  Sean으로 바꿔보자
grep 이랑 sed그리고 xargs를 쓰면 되는데
grep = Hyung이라는 text가 들어 있는 파일 찾는 명령어
sed = text를 바꿀때 쓰는 명령어
이 두명령어를 같이 쓰려면
$grep -rl Hyung . | xargs sed -i -e 's/Hyung/Sean/g'
요런식으로 해주면 슈루루룩 바뀐다
와우..........

openMP 새로운 문제..

빌드는 되는데 보니깐 openMP가 작동을 안한다 ㅠㅠ
로그를 넣어 보고서야 알게 되었다.. 난 바보 인가..
역시 toolchain 이 문제 인데
external/openCV에서는 다른 툴체인을 사용 하는것으로 보인다
Framework에서 같은 툴체인으로 빌드를 하면 안되는건가..
disable되어 있는 configuration을 바꿔 주면 빌드 초기에 prebuilt를 하다가 에러가 생긴다.
아으 ㅠ

Friday, March 2, 2012

samba uses linked folder;)

If you are using samba, sometimes you need to add linked folder.
you can easily link the folder, however samba will block to access that folder.
What can we do then?

We can easily change samba setting and restart it ;)

$sudo vim /etc/samba/smb.conf 
in the [global] you can easily add
wide links = yes

and restart samba;)
$sudo restart /etc/init.d/smbd

That's it;) you can now browse linked folder... nice..

Fastboot ERROR:???

폰에 시스템이나 붓 이미지를 넣는데 에러가 생겼다라면?
파티션이 모자르다 라고 말한다면?
파일 싸이즈가 너무 크다라면?? 어떻게 해야 할까?

이 상황은 아마 무엇인가 소스를 고치고 파일 크기가 커져서 생기는 경우이다.
원래 빌드가 잘되고 있었다라면;)

파티션 싸이즈는 device 단에 빌드한 디바이스 명칭 아래 보면
BoardConfig.mk 란 파일이 있을것이다 여기에 보면
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 536870912
요런 식으로 파티션 사이즈를 잡아 둔것이 있을것이다.

고럼 한번 ls out/target/product/....../ -al
을 쳐보면 아마 정말 아마 system.img파일크기가 저 크기를 넘기고 있진 않을까?
저 놈만 바꿔 주고 aboot을 넣어 주면 파티션 크기가 바뀌게 된다.. ;)
참 쉽죠잉~

Thursday, March 1, 2012

The Good Example of openMP

in the external/opencv, it uses openMP ;)
the thing is that they don't have fopenmp in the Android.mk file nor
include <omp.h> in their header files.
Don't know how it works without those;)
but after I follow those rules, I could finally build it.

And now all I want to see is, does it really working with several threads or not.
Let's see;)

openMP :(:(:(:(

자.. 문제가 드뎌 보인다..
툴 체인에서
openMP가 disable 되어 있다.
grep -rl disable-libgomp . | xargs sed -i 's/disable-libgomp/enable-libgomp/g'
요런 명령어로 디스에이블 되어 있는 안드로이드 툴 체인으로 바꿔 줬더만
프리빌트에서 빌드 하다 에러...
구글링 하니깐 이 상황에 빠진 사람들이 있는거 같다 ㅠㅠ

뭔가.. 방법을 찾아야 한다.. 아아아

openMP :(

지금 내가 마주친 문제..
openMP APIs를 사용 하기 위해선
맞는 툴 체인을 사용해야 하는데
openMP 소스랑 헤더가 들어 있는 툴체인은 sdk용이다.. 음..
Frameworks 쪽에서 쓰기 위해선 뭔짓을 해야 하는거지..
일단 소스랑 헤더를 옮겨 보고 해봐야 겠다..
음... 약간 골치.. 아픔.