GPU computing Stay up to date in OpenCL, DirectCompute, CUDA, CAL and OpenGL information

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Saturday, 16 January 2010

GLES 2.0 (and 1.x) emulators..

Posted on 13:27 by Unknown
amd gles 2.0 emulator for windows
nvidia tegra 2 has gl es 2.0 emulator for windows linux?
openkode
powervr (es 2.0 for mac, win,lin) es 1.1 win and lin?
iphone emulator (gl es 2.0 and 1.x) mac
gdebugger gl es 1.x emulator es?
Read More
Posted in | No comments

OpenCL Nvidia DirectX (up to 11) extensions published..

Posted on 13:26 by Unknown
the week started with d3d11 compute shaders amd assembly checking..
now gdebugger 5.4 with OGL 3.2 and win7 support and nvidia perfsdk updates..
also ocl dx extensions by Nvidia
now I have to compare to DX OpenCL ext AMD
Read More
Posted in | No comments

Some suggestions questions and problems I have..

Posted on 13:23 by Unknown
Please fix this issues.. making and almost perfect OpenCL SDK..

This are the things that are most wished for me to be fixed:

improvements:
0. Support kernels with a loop with a lot of MADS for testing peak flops: this gets long compile times-> kernel in CUDA compiles fast..
1. Ship an up to date ICD compatible with AMD one i.e fix ICD for detecting also AMD backend.. (or AMD ship fixed OCL iCD dll)..
2. expose
clGetGLContextInfoKHR(cl_context_properties *properties,
cl_gl_context_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret)

is not in hearders, .lib and also not exported in khronos .dlls

3. Add DirectCompute ocean demo to OpenCL port in GTC09 (shown): i.e are the plans to publish OpenCL port of DirectCompute ocean demo shown in GTC OpenCL course..
4. Ship a driver compatible with new Nvidia DirectX interop extensions
5. fp_16 and 3d_image_write extensions?


ocl compiler bugs:

1. and bug in ATI AES sample.. see:

Thanks. Also, I've found a way to fix AESEncryptDecrypt sample to pass test on nvidia: just replace

CODE
unsigned char hiBitSet = (a & 0x80);
with
unsigned char hiBitSet = ((a>127)?128:0);
in AESEncryptDecrypt_Kernels.cl
It looks weird, but it works


2. fft apple lib see: http://forums.nvidia.com/index.php?showtopic=153544
Take a look at fft_base_kernels.h, see line 4 of "baseKernels", the complexMul line.
The define seems to be too complicated to the NVidia OpenCL compiler, I replaced the define by a function and it's now working:

CODE
float2 complexMul(float2 a,float2 B) { return (float2)(mad(-(a).y, (B).y, (a).x * (B).x), mad((a).y, (B).x, (a).x * (B).y));}


3. kernels without parameters don't compile

bugs in SDK:
1. samples get platformID but have to set parameter to NULL for working on non Nvidia imp (AMD imp.)..
or fix the function for setting to NULL at first..
2. Oclutils: getdevice(i) check num devices but returns wrong data if i=num devices due to incorrect check if(i>numdevices) error..
3. Shrutils: findfilepath if you put absolute path "c:\.." fails due to adding ".\" you have to add "" to add paths..


About DX11 OIT demo.. crahsing for me..
Hi have seen from AMD forums DX11 OIT demo..
Well the demo crashes with:
DXGI_ERROR_INVALID_CALL
Failed to resize swap chaing..
I have

Windows 7 x64
AMD 5850
Catalyst 9.12 hotfix and 10.1
DirectX runtime august 2009

What's the problem..


update: answer from author:
Hi rtfss!

Yes, there was a serios bug around BGRA/RGBA formats. I don't know why
it works on Windows 7 32-bit.

There fixed and slightly optimized demo demo (actually I further
optimize it as much as possible):

http://rapidshare.de/files/49006316/oit_dx11.zip.html

If it works, please let me know, and I re-upload it for public
community as soon as possible.
Some questions about VAAPI, VDPAU, XbVA?

I want to know a lot about GPU video decode stuff in Linux.. i'm asking some questions..
Basically I have doubts about using/learning VDPAU or VAAPI depending of these features:
*OpenGL interop overhead..
*Dual HD stream decode support..
*(this is your opinion) possible future support by the API of H.264 MVC (multiview codec)..

First I have read some time ago that VAAPI added GL interop so now is returning all frames as OGL textures, right?.. I think I have read that
AMD is only working trough OGL backend but has lower CPU usage but Nvidia OGL backend has some CPU overhead.. it's currently right with current drivers?..
some perf figures..
Also I tested first XBva backends with 9.10 and flgrx 9.11 and didn't work with my 5850 but ok with 4850 cards..
so say with Catalyst 9.12 hotfix or upcoming 10.1 is working Xbva backend with 5850 card?.. also assuming not is a AMD issue or a issue of AMD VAAPI backend?..
More questions:
New cards like AMD 5850, Nvidia GT 240 and Intel graphics HD support dual stream decode, so is this exposed/supported in VAAPI.. i.e. the API is capable of exposing such hardware feature?..
Assuming no, are someone working to add that support to VAAPI?..
Also VDPAU exposes and accelerates dual HD streams in supported GPUs?.. if yes it would add parity to DXVA HD
Also assuming is no NDA thing can someone tell me if using Xbva VAAPI I can decode HD dual streams?.. i.e. XBva is exposing that capabilty..

Also more "futuristic" things:
Hi have seen exists a current H.264 MVC (multiview codec) reference encoder decoder..
Also Nokia ships a encoder decoder..
I'm would want to encode some samples to MVC..
Anyway I expect VDPAU with all the Nvidia motivation in 3D Vision would add support to it sometime this year..
Someone plans to patch/improve VAAPI to expose that support? i.e. exposing VDPAU MVC support via VAAPI..
Also someone knows if FFMPEG has this support in trunk or about some effort/patches into playing these codec..

Last question is more about expectations in GPU video encoding:
Nvidia ships CUVENC.DLL for Windows providing GPU H.264 video encoding..
Now seems with Windows 7 you have crossvendor via MFT, GPU H.264 video encoding for example, I think at least supported for Nvidia..
Someone knows if Nvidia is working or VDPAU exposes currently GPU video encoding..
if not I think VAAPI latest API at least exposes the interfaces, right?.. I think it's hard to add say a backend that uses x264 or H.264 reference encoder as an example..

seems Broadcom Crystal HD has provided open source drivers for decoding all HD formats for Linux so do you plan to add a VAAPI backend for these cards?
Also seems they provide open source drivers for MAC so last question is..
how hard is to get a MAC or Windows port of VAAPI?
Basically I would want to form same source using VAAPI have GPU decoding in Windows via a DXVA VAAPI backend and for MAC at least in Snow Leopard use their GPU decoding backend..
Read More
Posted in | No comments

Why I want a tablet more than a netbook..

Posted on 05:31 by Unknown
Well I'm going to argue why for me a tablet is better than a netbook..
For starters screen size and resolution is the same i.e. you can have 1024x600 9-10 inch at least..
also there are tablets using some panel which can act as e-ink mode so
no backlighting hurting your eyes..
but at this you have less weight and less space ocupied as no keyboard, also less power-> less battery size, etc....
yeah I know you have 10-11-12 inch netbooks with 13xx-7xx pixels but I think there would be tablets with such resolution..
First with tablets you have touch support which is more comfortable than a netbook.. also in netbooks but not all..
also a lot they have all the phone gadgets: GPS, accelerometers, digital compass, Wifi, 3G, webcam, etc..
Some netbooks have some of this but it's hard to find touch+gps+3g etc.. for example..
Anyway some netbooks have tdt integrated recievers.. but you can add usb stick to a tablet and port some linux kernel support for it to arm os?..
well I don't know if tablets have usb inputs but think yes..

One area lacking was HD outputs and HD video decode/encode FUllhd support..
Another are is performance like web surfing.. i.e. CPU perf..

Also if netbooks last 8 hours more at least tablets as CPUs consumer 0.5watts
vs 2-10 watts in netbooks..
CES has been hot on mobile stuff:

This with Tegra2 has all you want.. and no I'm not Nvidia CEO..

First 2 core ARM9 (out of order) with more caches and at more than 1ghz..
some theoreticall 40-50% perf. via ARM9 CPU, 40-50% more freq per core and
2x cores so you have up to 4x perf.. assuming web browsers load things multithreaded..

There is a video on youtube showing ARM9 (dualcore?) at 500mhz via atom and web page load is similar..

Also has Tegra2 with HD 1080p video realtime decode encode.. Mp3 chip low power also and camera processor (up to 12 mp).. Tegra2 has Adobe AIR for magazines and flash 10.1 I think for being full hd videos..

Also GPU is 2x faster than Tegra

GLES 2.0 exts:
• GL_ARB_draw_buffers
• GL_ARB_half_float_pixel
• GL_EXT_packed_float
• GL_EXT_texture_array
• GL_EXT_texture_compression_latc
• GL_EXT_texture_filter_anisotropic
• GL_OES_compressed_ETC1_RGB8_texture
• GL_OES_EGL_image
• GL_OES_fbo_render_mipmap
• GL_OES_shader_binary
o (Indicated by the value of GL_NUM_SHADER_BINARY_FORMATS being nonzero).
Indicates that the implementation supports precompiled binary shaders. All of the
demos use this capability on Tegra. See the nv_shader helper library for details
• GL_OES_texture_float
• GL_OES_vertex_half_float
• GL_EXT_texture_compression_dxt1
o The implementation supports specifying textures with the
GL_COMPRESSED_RGB[A]_S3TC_DXT1_EXT formats. Not exported on Tegra, but
supported
• GL_EXT_texture_compression_s3tc
o The implementation supports specifying textures with the
GL_COMPRESSED_RGBA_S3TC_DXT[1,3,5]_EXT formats.
• GL_OES_framebuffer_object
o (Required extension.) Framebuffer objects are supported. Not exported as an extension
string on Tegra, but supported
• GL_OES_mapbuffer
o The implementation supports the glMapBufferOES and glUnmapBufferOES
functions. These are exported directly and do not need to be queried.
• GL_OES_rgb8_rgba8
o The implementation supports GL_RGBA8_OES and GL_RGB8_OES as FBO color
buffer formats.
• GL_OES_stencil8
o Indicates that the implementation can support an 8-bit stencil buffer for render targets.
Not exported as an extension string on Tegra, but supported.
• GL_OES_texture_half_float
A opengl document for tegra says has this NV nice OpenGL extensions:
NV_shader_framebuffer_fetch
NV_coverage_sample
NV_depth_nonlinear
NV_draw_path
NV_system_time

also says:
GL_NV_fbo_color_attachments
GL_NV_read_buffer

but no info on them:
GL_NV_read_buffer
seems:
NV_shader_framebuffer_fetch

Briefly:
Binary shaders
Non power of two texes..
texture arrays (dx10 feature)
(vector path rendering font rendering
reading framebuffer in shaders
antialiasing extension

Some are not supported in OpenGL 3.x and not extensions so Fermi coming ext:
specially I would want binary shaders similar d3d11 and a vector ext inside OGL for not using OpenVG and reading the current rendering FrameBuffer in shaders

Also seems Tegra 3 is coming next year (1 year tick tock as Tegra2 is Tegra 1 stuff faster?) I think it will have g9x architecture at least so at least
CUDA/OpenCL full suport with atomics, concurrent kernel exec/mem copy, async mem copies, etc.. and also OpenGL 3.2 so at least seems OGL ES 3.0 is due sometime this year to expose this graphics chips.. I hope it has OGL 3.2 plus ARB extensions as base..
Also 2x perf at lest

Some showed Unreal 3 on tegra2 similar to anand unreal in iphone's sgx535..
All gl es 2.0..

Also from PowerVR anounced sgx545 which has full OGL 3.2 and d3d 10.1 and opencl.. seems Nvidia claims similar perf due to better drivers as GPU PowerVR seems better..
it's for PSP 2 seems..
also note that Powervr from press to chip is two years or more as sgx 535 was anonunced in jan-feb 2007.. june 2009 released?
Hope it's now reduced one year the time

More CES Processors:
Laptops:
Intel Core i5 Nehalems (32nm, AES and binary field multiplies,etc..)
integrated Intel graphics HD (2x better,OpenGL 2.1 at least) but dual cores..
8 cores Nehalem Becton prototype laptop..
Quadcore AMD mobile chip Q1?

Netbooks:

Quad core ARM (ARM11? i.e. low end) by Marvell but at 1GHz at least (40nm)
Dual core ARM9 at 1.5ghz
Snapdragon 40nm dual core ARM8 at 1.5ghz
Morestown preview

Broadcom Cristal HD as hardware video decoder: source code driver for MACos and Linux
So tablet provides:
touch support
phone gadgets: gps,wifi,3g phone,integrated video cam, photo cam?,etc..
larger size than phones: allows as an e-reader, view hd videos,etc..
large on for mp3,..
high perf in tegra2

so is like iphone 3gs(phone + ipod(music))+bigger screen (for photos+videos+e-reader)+more speed CPU&GPU+full HD video encode decode

Still netbook has two advantages:
* (This is big) x86 CPU and also runs Windows, Mac and classic software..
So seems some ARM virtualization extension+ some binary translation to run
Windows via some Wine for ARM would be good..
* ION has OpenCL, CUDA, OpenGL 3.2, D3D10, etc.. (G9x)
Still lacking is ION2 which is supposed GT200 core so 3x more cores (48 cores) at least I think 24 cores is low..
so this would have more registers, less coalescing issues, local atomics, etc..
Lacking is doubles and Fermi stuff of course (DX11,etc..)..
this will be solved with Tegra3..

Of course in desktop we have:
great cpus (x86(-64),virt):soon AVX 8 cores?
great gpus: d3d11 based near 2xx gbytes/s ram
great ram (24gb kits)
great disk (tb hard drives and fast ssd)

Coming is Apple tablet:
Iphone SDK 4.0 (has webgl? and opencl?)
it's based on Snow leo or iphone os also what touch api cocoa touch ported to snow leo?
what GPU is tegra2? some news say tegra2 for 2011 iphone this is bad..
as tegra3 would be for that year (OpenCL for sure..)
also with sgx 545 anouncement this has OGL 3.x and D3d 10.1 and FULL opencl support seems is needed a GL ES 3.0 encapsulating OGL 3.x support and
iphone with that chip is good assuming powervr has good OCL support
Read More
Posted in | No comments

Thursday, 14 January 2010

More news:Found a nice blog with DirectCompute stuff..

Posted on 11:19 by Unknown
1.vreveal hd in q1 2010
2.bullet has some of sony physics effects sdk
3.freepascal opencl support
4.erlang opencl support
5.http://cudpp.googlecode.com/svn/trunk/cudpp/doc/CUDPP_slides.pdf
(last update 10/12)
In progress: Parallel reduction, more sorts, graphs, trees
remeber hash also


6.http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-5/
now optimized..

7.regarding oit d3d11 demo
http://rapidshare.de/files/48979592/oit_dx11.zip.html
has an interesting blog:
http://joescg.blogspot.com/2010/01/compute-shader-application.html
in
http://joescg.blogspot.com

in russian
UAV vs RT
http://joescg.blogspot.com/2010/01/uav-vs-rt.html
OIT / A-buffer demo
http://joescg.blogspot.com/2010/01/oita-buffer-demo.html
Compute Shader Application
http://joescg.blogspot.com/2010/01/compute-shader-application.html
A-buffer
bullet has some of sony physics effects sdk
http://joescg.blogspot.com/2010/01/buffer.html
2010
http://joescg.blogspot.com/2009/12/oit11-dx-sdk-d3d11.html
Parallel Prefix Sum (Scan)
http://joescg.blogspot.com/2009/12/parallel-scan.html
Radeon HD 5770
http://joescg.blogspot.com/2009/12/bufferoit-through-sm-50.html
A-buffer/OIT through SM 5.0
Direct3D 11 and Text Drawing
http://joescg.blogspot.com/2009/12/direct3d-11.html
Direct3D 11 Inspection
http://joescg.blogspot.com/2009/12/direct3d-11-inspection.html
Inverse in PS
http://joescg.blogspot.com/2009/12/inverse-in-ps.html
Paper dragon
http://joescg.blogspot.com/2009/11/fermi.html
Ray-Tracing Super Sampling
http://joescg.blogspot.com/2009/11/ray-tracing-super-sampling.html
Column-major vs Row-major
http://joescg.blogspot.com/2009/10/column-major.html
more:
Ray-BV Intersection
http://joescg.blogspot.com/2009/10/ray-sphere-intersection.html
http://joescg.blogspot.com/2009/10/hd-2400-is-slow.html
Raycaster and MIP-filtering
http://joescg.blogspot.com/2009/10/raycaster-vs-rasterizer.html
http://joescg.blogspot.com/2009/10/how-to-pack-normal-into-just-2-bytes.html
http://aras-p.info/texts/CompactNormalStorage.html
http://joescg.blogspot.com/2009/12/radeon-hd-5770.html
http://joescg.blogspot.com/2009/10/woops-unit-triangle-intersection-test.html
http://joescg.blogspot.com/2009/10/gpu-ray-triangle-intersection.html
http://joescg.blogspot.com/2009/10/hybrid-approach-for-refractions.html
http://joescg.blogspot.com/2009/10/how-antialiasing-works-part-4.html
http://joescg.blogspot.com/2009/10/conservative-binary-search.html
http://joescg.blogspot.com/2009/10/fresnel-reflection.html
http://joescg.blogspot.com/2009/10/math-terms.html
http://aras-p.info/texts/CompactNormalStorage.html

http://joescg.blogspot.com/2010/01/buffer.html
Read More
Posted in | No comments

Integer GPU computing apps..

Posted on 10:25 by Unknown
Integer programs are now being routed to GPU en massse..

In one year RSA, molmud, elliptic curves ops, parts of factoring in ECM and Mersenne GIMP programs, logarithm discre problem solver,have been ported:

First see Bernstein GPU work:
(e)ecm on gpu january 09 : edward curves 48g mulmod/s on 280bit mod GTX295
called gpu-ecm
software avaiable (with source)(1-fase) chung meng cheng research page..
cuda-eecm: september 09 best optimized curves edwards on cell,cpu and gpu
now 500g mulmod/s on 192 mod (scales as pow(280/192,2)) so 6-7 times faster than previous record..
CPU imp now ported from GMP to MPFQ and better EECM usage:
GMP-ECM->EECM-MPFQ software with source avaiable at:
I think gpu soon avaiable in cpu page..
nearsha gpu and cpu client

RSA see dublin research group (also best aes imp and good mulmod on Zp or ZN)

Factor code:
Msieve 1.44 gpu download win32 binary :
with c160 gpu load 99%
On SVN source has VC2008 projects by Brian Gladman..
says 27x 9800gt vs intel core duo
examples:
9370548739750343689742077059611741296688413458087068027338328923603585147935698143105876573510157864118212297131774808193943011745511363829026508600700379919701

3414023265048252827894893895448283501597256998523545196425280040055849104721167589947328246556695586532677342768160211760950557294071424000

Mersenne programs:
Maclucasfftw_cuda (now using cufft instead of fftw) seems validated computations altough direct porting.. uses doubles so gt2xx i think and low
speed developers waiting for fermi 5x impr at least expect..
now seems gtx275 with 2048k and 4096k fft seems 2x perf over highly optimized single thread on 3ghz core 2 so at least fermi with 5x perf better than nehalem or k10 (?)

logarithm discrete solver 0.3: 0.1 in 2007 was better 16x than previous state of the art code all at x86 with 0.2 in 2008 have 64bits support and better scalability and now in spet 2009 cuda code with python interface..
the python interface is promising as has dll for cuda version so you know how to call it and has cubins.. for testing decuda..
no sources..

CPU implementations are getting faster:

GMP 5 released with better asimptotic very fast mult, div,etc.. also mingw64
support so the best probably better than before 4.3 with gladman vs2008 port using yasm and probably better than mpir as is gladman win stuff with yasm

MPIR 1.3(4) in SVN with Nehalem assembler and tuned mp_param also seems some code is very good before with fft mul,etc.. so has to test gmpbench 0.2 with mpir trunk and gmp5 x86 and 64 on windows and linux at least..

MPFQ 1.0rc2 released in october (windows support? or fixes..)

there exist MPFR and a lib using transcendentals on google code..
Also two breaktrough news:
pi world record on nehalem
768 rsa factored zimmerman stuff..

Last AMD GPU has integer sad and new integer instructions see
SA2009 course..
in parboil benchmark has sad (h.264) test would be good porting to ocl for getting sad optimized with ati ocl sad instructions what speedup vs fermi?
Read More
Posted in | No comments

MsC project ideas!

Posted on 10:22 by Unknown
This will be things I would like to work say if have to do a MsC:

1.Do a PTX to AMD IL 2.0 converter: use libptx from exoto of ptxparser of ocelot as barra uses cubin and gpgpusim not known..
then from that build a amd il codegen.. now with 5xxx specs is good stuff..
Adding also PTX 2.0 with Fermi instructions ballot etc.. also use bitinsert sad etc.. of AMD 5xxx
if you want ot execute
still lack ptx v1.5 of opencl but cuda backend perhaps supprots it as cusurf errors show opencl uses cuda runtime soemwaht
use a cudart or nvcuda library wrapper and send all that to amd ocl implemetation or better trace cal use of opencl for using cal opencl special functions and do a cal wrapper it's the best..
cubin decode with decuda..
physx,optix.etcc

2. include asm support for opencl for amd and nvidia so they map to ptx and amdil intercepting with opencl builtin get of bin
include sombe magic instruction and use asm("...") builtin function as magic
then post merge with ptx that seems ssa or do liveliness analissis over a cfg
and proper register allocation
instructions can be universial addc clock instruction for amd and nvidia and special as sad instruction,,etc....
amd is going to introduce as instrinsics
also include in cuda compiler as addc guy say nativesadamd() and intercept in ocl wrapper

3. port and redesing matmul,fft, sort and other *good* nvidia implementations to be efficient on ati

4. try to fix optimized cuda codes that no work on ati (say check implicit warp 32 size assumptions) from 3. also try to learn general rules of thumb for on the fly optimization of ptx or cuda programs to kernels..
Read More
Posted in | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • About ATI and Nvidia drivers (OCL included)!
    Hi I have been investigating AMD and Nvidia drivers.. for 10.3 there are 3d hooks support for 120hz monitors but is d3d9 d3d10 or d3d11 enab...
  • opencl/opengl linux interop! seen in opencl cuda 3.0 sdk samples
    Following my OpenCL/OpenGL Window interop work: now has come to Linux  for Nvidia GPU computing registered developers via 195.17 driver! Als...
  • State of the blog..
    Sorry for the delay guys of posting code of Apple OpenCL demos port.. the blog has been with no updated for more than 2 weeks in this rapid ...
  • Megapost!
    Today fools{ *GTX 485 is 512 cores 3gbytes gddr5 and 850/1750 shaders.. *ati 5990 has 4 gpus in board.. *bulldozer benchmarks }end fools.. A...
  • Optix and OpenCL SDKs with Visual Studio 2010
    Optix 1.0 ========= install cg download Cmake 2.80 cmake says error dumpbin not found and it is cuda doesn't work with vc2010 so copy pt...
  • things found in CUDA forums
    Also some CUDA news: Mandelbulb stereo angalyph -> have to port to 3D Vision http://forums.nvidia.com/index.php?showtopic=150985&st=2...
  • Shaders: measuring perf, source translation and parsing different languages!
    Hi, I hope to be pretty exhaustive of options for parsing and translating between graphics and compute shaders ( some open source) For DX sh...
  • Whises for OpenCL 1.1 and more!
    Make core DirectCompute 5.0 hardware features: posted http://www.khronos.org/message_boards/viewtopic.php?f=41&t=2160 *Atomics to global...
  • A long report of the silence before the storm: AKA a month before Fermi..
    Sorry raw dump of my ideas: Altough we are a month of a complete storm if we follow carefully we can hear some thunders of that storm known ...
  • News from the web!
    Some things learned in AMD forums: 1.Why 3xxx no OpenCL: Compute shader mode is a hardware feature that did not exist in the HD38XX line of ...

Blog Archive

  • ▼  2013 (5)
    • ▼  September (1)
      • What I expect from GCN2.0 and APU13 conference..
    • ►  March (3)
    • ►  February (1)
  • ►  2012 (1)
    • ►  December (1)
  • ►  2010 (46)
    • ►  July (4)
    • ►  May (1)
    • ►  April (3)
    • ►  March (9)
    • ►  February (15)
    • ►  January (14)
  • ►  2009 (125)
    • ►  December (51)
    • ►  November (53)
    • ►  October (21)
Powered by Blogger.

About Me

Unknown
View my complete profile