OpenCl and the tools for it. Reviews and impressions. - page 27

 
These are unsubstantiated scare stories from the OpenCL 1.0 era. It feels like text from 2009-2010.
 
Renat:
These are unsubstantiated scare stories from the OpenCL 1.0 era. It feels like a text from 2009-2010.

What are you talking about, Rinat?

Catalyst Drivers 11.7 WHQL and 11.8 Preview have been read for download and AMD has moved their APP-SDK for accelerating OpenCL

applications to version 2.5, now finally supporting Double Precision/Doubles/FP64/watchamacallit via cl_khr_fp64.

The caveat though: It's only included for Cypress-based GPUs, not Cayman and not older chips capable of 64 bit precise calculations.

http://www.gpu-tech.org/content.php/167-AMD-Catalyst-Driver-11.7-AMD-APP-SDK-2.5-bring-double-precision-for-Cypress-AVX-for-CPUs

Radeon HD 6990/6970/6950 (Cayman based):

- Double Precision at 1/4th speed
Radeon HD 6870/6850/6790 (Barts based):
- No Double Precision Support

Radeon HD 6 770/6750 (Juniper based, renamed for OEM usage):
- No Double Precision Support

Radeon HD 6670/6650 (Turks based):
- No Double Precision Support

Radeon HD 6450 (Caicos based):
- No Double Precision Support

Radeon HD 5970 (Cypress based):
- Double Precision at 1/5th speed

Radeon HD 5870/5850/5830 (Cypress based):
- Double Precision at 1/5th speed

Radeon HD 5 770/5750 (Juniper based):
- No Double Precision Support

Radeon HD 5670/5650/5570 (Redwood based):
- No Double Precision Support

Radeon HD 5450 (Cedar based):
- No Double Precision Support

Radeon HD 4890/4870/4850/4830/4730 (RV770/790 based):
- Double Precision at 1/5th speed

Radeon HD 4770 (RV740 based):
- Double Precision at 1/5th speed

Radeon HD 4670/4650 ( RV730 based):
- No Double Precision Support

Radeon HD 4550/4350 (RV710 based):
-No Double Precision Support

Radeon HD 3870/3850 (RV670 based):
- Double Precision (at 1/5th speed)

Radeon HD 3650 (RV635 based):
- No Double Precision Support
Radeon HD 3470/3450 (RV615 based):
-No Double Precision Support

Radeon HD 2900 XT/Pro/GT/OEM (R600 based):
-No Double Precision Support

Radeon HD 2600 XT/Pro (RV630 based):
- No Double Precision Support

Radeon HD 2400 XT/Pro (RV610 based):- DirectX 10 (no Compute Shader though) and lower,

- No Double Precision Support

http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/CUDA_Toolkit_Release_Notes_And_Errata.txt

//forums.nvidia.com/index.php?showtopic=34744Windows 2003 Server has not been tested or qualified for use with CUDA.


Rinat, tell us how it is possible to write an unintentionally Win32 program to make it work on WinXP, Win Server 2008, Vista-Win7 and at the same time not work on Win Server 2003 ?? nVidia CUDA SDK installer of any 3+ version will not even install
on Server 2003 (will not unpack !), stupidly writes invalid cell reference, like in Win 3.1. How could nVidia do this in Win32 program UNEXECUTIONAL?
 

There is a lot about structural accuracy on the GPU, the programmer of FIXED software needs to be very, very careful, well even from Nvidia itself for example:

http://developer.nvidia.com/content/precision-performance-floating-point-and-ieee-754-compliance-nvidia-gpus

4.7 Differences from x86 NVIDIA GPUs di er from the x86 architecture in that rounding modes are encoded within each foaming point instruction instead of dynamically using a foaming point control word. Trap handlers for floating point exceptions are not supported. On the GPU there is no status flag to indicate when calculations have overflowed, underflowed, or have involved inexact arithmetic. Like SSE, the precision of each GPU operation is encoded in the instruction (for x87 the precision is controlled dynamically by the floating point control word).

Studying CUDA and OpenCL sometimes gives the paranormal impression that the iron makers have decided to finally kill the mathematics with their "revolutions" and marketing wow-hysteria - when they artificially create a false sense of what and how exactly should MY computer do. Instead of exact and predictable mathematical calculations, their frenzied gamer-centric speed is proposed.

Programmer has to be very attentive to accuracy of calculations, and make decisions whether to calculate on CPU or GPU. Moreover, hardware-owners together with Microsoft have sneakily, on the sly, made a nasty mess on CPU, too.

Well, I have work to do. Goodbye.

 

Doesn't seem to have been discussed yet...

Related link: AMD C++ AMP library integrated in Visual Studio 11 http://blogs.amd.com/developer/2012/03/01/amd-and-the-visual-studio-11-beta/ I understand the beta can already be downloaded.

 
alsu:

Doesn't seem to have been discussed yet...

Related link: AMD C++ AMP library integrated in Visual Studio 11 http://blogs.amd.com/developer/2012/03/01/amd-and-the-visual-studio-11-beta/ I understand the beta is already available for download.

Particularly interesting is this:

Auto-vectorization

Also new to C++ in Visual Studio 11 is an auto-vectorizer which is on by default. The compiler will vectorize loops where possible to improve performance using vector instructions on the processor (such as SSE2 and SSE4.x). Take the following code snippet example:

float A[1000], B[1000], C[1000];

for (i = 0; i < 1000; i++) {

A[i] = B[i] + C[i];

}

The C++ compiler can vectorize this loop in order to execute multiple iterations simultaneously, improving performance significantly with instructions available on modern processors.

In addition to the vectorizer, the auto-parallelizer will execute loops across multiple CPUs processors in the system, getting better effective utilization out of the underlying hardware. The parallelizer requires input from the programmer to indicate those loops that should be parallelized, and can also be used in conjunction with the auto-vectorizer.

 
What I'm wondering is how much of this stuff will include AMD64 support... don't want to get hung up on Intel
 
joo:

Particularly interesting is this:

Auto-vectorization

Also new to C++ in Visual Studio 11 is an auto-vectorizer, which is on by default. The compiler will vectorize loops where possible to improve performance using vector instructions on the processor (such as SSE2 and SSE4.x). Take the following code snippet example:

float A[1000], B[1000], C[1000];

for (i = 0; i < 1000; i++) {

A[i] = B[i] + C[i];

}

The C++ compiler can vectorize this loop in order to execute multiple iterations simultaneously, improving performance significantly with instructions available on modern processors.

In addition to the vectorizer, the auto-parallelizer will execute loops across multiple CPUs processors in the system, getting better effective utilization out of the underlying hardware. The parallelizer requires input from the programmer to indicate those loops that should be parallelized, and can also be used in conjunction with the auto-vectorizer.

This is strong. Really strong. The evolution of computing technology towards parallelisation is literally happening before our eyes.
 
AlexEro:

What are you talking about, Rinat?

Catalyst Drivers 11.7 WHQL and 11.8 Preview have been read for download and AMD has moved their APP-SDK for accelerating OpenCL

My point is that you pretend that there is no today and try to issue blatantly false conclusions.

For example, by posting the oldest versions of video cards as evidence and stubbornly ignoring 7XXX models and Catalyst 12.x drivers

Judging by your statements about Windows 2003, you are a proponent of "THEY must support ALL" and on the basis of violating such a sacred condition (as it seems to you), the world should admit its worthlessness and go pray for forgiveness. The world just moves on, evolving and releasing new and better products.

You don't know how to write incompatible software because you don't develop this very mass-produced software and you don't know what the technical problems and necessary compromises are. Demanding that video card manufacturers support the old server version of Windows 2003 is consumer extremism. Software manufacturers are happy to forget about the zoo of old operating systems as a bad dream. And the driver makers are just dreaming about it.

P.S.: no need to jump to a trivial comparative method "why do they support 2008" replacing real understanding of the root causes

syl: stop using the broken version of Windows 2003 Server - it's 2012

 
Renat:

I mean that you pretend that today does not exist and try to draw frankly false conclusions.

For example, by posting the oldest versions of video cards as evidence and stubbornly ignoring 7XXX models and Catalyst 12.x drivers.

Judging by your statements about Windows 2003, you are a proponent of "THEY must support ALL" and on the basis of violating such a sacred condition (as it seems to you), the world should admit its worthlessness and go pray for forgiveness. The world just moves on, evolving and releasing new and better products.

You don't know how incompatible software can be written because you don't develop this most mass-produced software and you don't know what the technical problems and necessary trade-offs are. Demanding that video card manufacturers support the old server version of Windows 2003 is consumer extremism. Software manufacturers are happy to forget about the zoo of old operating systems as a bad dream. And the driver makers are just dreaming about it.

Note: no need to jump to the banal "why do they support 2008 then" comparative method that replaces a real understanding of the root causes

syl: stop using the broken version of Windows 2003 Server - it's 2012

Well, I understand your answer perfectly. Ha-ha, I hope others do too.

And that's what, I'll probably follow your advice, it's exactly the same as my intentions. So I will leave you all here for a while - a year or two.

Goodbye.

 
AlexEro:

Well, I understand your answer very well. Ha ha, I hope everyone else does too.

And I'll tell you what, I'm going to follow your advice, it coincides with my intentions. So I'll leave you all here for a little while - a year or two.

Goodbye.

You would never guess from a post that its author is the topicstarter.... Why he started the thread is unclear.
Reason: