Archive for February, 2010
Smalltalk 01/2010 - Virtual
by admin on Feb.16, 2010, under Smalltalk
Ok, the next image is ready. This image is now running under Debian 5 and when asked for a user you may enter the user name “smalltalk” with password “smalltalk”.
The following Smalltalks are installed:
* Smalltalk/X 5-4-6 (Windows)
* Smalltalk/X 5-4-6 (Linux)
* VASmalltalk 8.01 (Linux)
* VASmalltalk 8.01 (Windows)
* ObjectStudio 8.1 (Windows) - to show the problems with menus
* VisualWorks 7.7 (Linux)
* VisualWorks 7.7 (Windows) - to show the problems with menus
On the Desktop you find icons to start each Smalltalk. Before using VASmalltalk 8.01 you must start the emsrv server. The Linux and Windows version of VASmalltalk are working against the same emsrv server.
Download Link has been removed due to open legal questions …..
OpenCL API wrapper for VASmalltalk
by admin on Feb.03, 2010, under Smalltalk
After working on my primitive project I start having a closer look to OpenCL - a computational environment for graphics cards. Both comapnies - ATI and Nvidia - are offering support for OpenCL 1.0 on their graphic cards. But not on all cards. Nvidia has offering longer support for this - but was/is named Cuda.
With OpenCL you are able to run programs in parallel on graphic cards. OpenCL is both: an environment or API and a programming c-like language.
The OpenCL wrapper for VASmalltalk should become a wrapper for the OpenCL-API and is under development und available from vastgoodies. The state of today is, that you can now query your available platforms (ATI oder NVidia) and the available devices (CPU or GPU).
Actually it can deliver an system report output via:
| anInterface aStream | anInterface := MSKOpenCLInterface new initialize. aStream := WriteStream on: String new. anInterface allPlatformInfos do: [ :eachPlatform | eachPlatform printReportOn: aStream ]. aStream contents inspect
and the result looks like:
Name of platform : ATI Stream Vendor of platform : Advanced Micro Devices, Inc. Profile of platform : FULL_PROFILE Version of platform : OpenCL 1.0 ATI-Stream-v2.0.0 Devices of this platform Name of device : AMD Phenom(tm) 9550 Quad-Core Processor Vendor of device : AuthenticAMD Vendor ID of device : 4098 Version of device : OpenCL 1.0 ATI-Stream-v2.0.0 driver version : 1.0 Device available : true Compute Address Space : 32 Device compiler available : true Device is little endian : true Error correction support avail. : false Size of global memory in cache : 65536 Global Memory cache line : 64 Global device memory : 1073741824 This device has NO image support ! Size of local memory arena : 32768 Maximum clock frequency : 2204 Number of parallel compute cores : 4 Max number of arguments : 8 Max size in bytes of a constant buffer : 65536 Max size of memory object allocation : 536870912 Max size in bytes of the arguments : 4096 Pref.Vect.Length for char (1 Byte) : 16 Pref.Vect.Length for short (2 Byte) : 8 Pref.Vect.Length for int (4 Byte) : 4 Pref.Vect.Length for long (8 Byte) : 2 Pref.Vect.Length for Float (4 Byte) : 4 This device has NO double-precision support ! Max size in bytes of a constant buffer : 4 Maximum dimensions of work-item IDs : 3 Item Size <1> : 1024 Item Size <2> : 1024 Item Size <3> : 1024 End of platform ATI Stream
or for my machine at work:
Name of platform : NVIDIA CUDA Vendor of platform : NVIDIA Corporation Profile of platform : FULL_PROFILE Version of platform : OpenCL 1.0 CUDA 3.0.1 Known Extensions for platform :cl_khr_byte_addressable_store, cl_khr_gl_sharing, cl_nv_compiler_options, cl_nv_device_attribute_query, cl_nv_pragma_unroll, Devices of this platform Name of device : GeForce 8800 GT Vendor of device : NVIDIA Corporation Vendor ID of device : 4318 Version of device : OpenCL 1.0 CUDA driver version : 196.21 Device available : true Compute Address Space : 32 Device compiler available : true Device is little endian : true Error correction support avail. : false Size of global memory in cache : 0 Global Memory cache line : 0 Global device memory : 1073414144 Max number of simultaneous image read by kernel : 128 Max number of simultaneous image written by kernel : 8 Maximum number of samplers used by kernel : 16 Max height of 2D image in pixels : 8192 Max height of 2D image in pixels : 8192 Max width of 2D image in pixels : 8192 Max depth of 3D image in pixels : 2048 Max height of 3D image in pixels : 2048 Max width of 3D image in pixels : 2048 Size of local memory arena : 16384 Maximum clock frequency : 1650 Number of parallel compute cores : 14 Max number of arguments : 9 Max size in bytes of a constant buffer : 65536 Max size of memory object allocation : 268353536 Max size in bytes of the arguments : 4352 Pref.Vect.Length for char (1 Byte) : 1 Pref.Vect.Length for short (2 Byte) : 1 Pref.Vect.Length for int (4 Byte) : 1 Pref.Vect.Length for long (8 Byte) : 1 Pref.Vect.Length for Float (4 Byte) : 1 This device has NO double-precision support ! Device Type : GPU FP Mode : FMA InfNAN RoundToInf RoundToNearest RoundToZero Maximum dimensions of work-item IDs : 3 Item Size <1> : 512 Item Size <2> : 512 Item Size <3> : 64 Extensions known : cl_khr_byte_addressable_store, cl_khr_gl_sharing, cl_nv_compiler_options, cl_nv_device_attribute_query, cl_nv_pragma_unroll, cl_khr_global_int32_base_atomics, cl_khr_global_int32_extended_atomics, End of platform NVIDIA CUDA
Vector Arithmetics - 0.7a
by admin on Feb.01, 2010, under Smalltalk
A new version has been published with new version of primitives - therefore you need both: the Smalltalk code and the new library.
With this version you have base arithmetics (+, -, *, /) and some mixture between scalar/vector and vector/vector operands.
Therefore you may now have code like:
| first second result | first := #(1 2 3) asMSKOSFloat64Vector. second := 2.0 . result := first + second. self assert: (result first = 3.0). self assert: (result second = 4.0). self assert: (result third = 5.0) .
or
| first second | first := #(1 2 3) asMSKOSFloat64Vector. second := 2.0 . first += second. self assert: (first first = 3.0). self assert: (first second = 4.0). self assert: (first third = 5.0) .