Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- AMD Community
- Communities
- Developers
- Devgurus Archives
- Archives Discussions
- FFT library for ATI GPU - does it exist?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

godsic

Journeyman III

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-18-2009
05:15 PM

FFT library for ATI GPU - does it exist?

The main point is USING ONLY LOCAL GPU MEMORY AND GPU for data processing. It is very easy for image, video, some signal, primitive in-game physics, ray-tracing processing. When you use GPU you need break all your knowledges about fast efficient CPU algorithms. In many cases they will be inefficient for GPU (VECTORIZATION , STREAMING - the main things for GPU, not the operation count!).

But in more important area - scientific simulations - you may found that you need to process large amount of data (much large in compare to local GPU memory) and in this case speed of Remote memory, PCIex and even CPU (because of architecture of modern AMD North Bridges!!!! HELLO AMD! ). You need to divide you data in some portions and reload each part to GPU memory. Therefore you need to buy only top-quality mainboards (ASUS, MSI), hi-end CPU (phenom 2 x4) and try to overclock your memory and PCIex as much as it possible for stable work. PCIex can be very unstable, and therefore (thanks PCIex specification) your data can be sended 20 times, till PCIex host controller receive it without errors).

Raistmer

Adept II

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-18-2009
06:23 PM

FFT library for ATI GPU - does it exist?

My dataset fits in GPU memory completely so wanna see GPU accelerated FFT from GPU chip vendor - ATI/AMD

Originally posted by:godsic

PCIex can be very unstable, and therefore (thanks PCIex specification) your data can be sended 20 times, till PCIex host controller receive it without errors).

Interesting, these retries can be seen programatically (i.e. some retry counter in hardware?) or only indirectly by measuring real transfer speed and comparing it with theoretical value for same freq/bus width ?

godsic

Journeyman III

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-18-2009
06:31 PM

FFT library for ATI GPU - does it exist?

Maybe can, but we need ask AMD about it? Therefore direct measuring of PCIex speed (with AMD utility) is the only way now.

Generally PCIex is just ultra speed and more functional USB.

I need to write FFT in near future for some reasons, so after I will post code here.

Raistmer

Adept II

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-18-2009
06:54 PM

FFT library for ATI GPU - does it exist?

Originally posted by:godsic

I need to write FFT in near future for some reasons, so after I will post code here.

Good news!

There is some FFT implementation for CUDA posted by Volkov on nVidia forums, but unfortunately only power of 2 up to 8192 supported for now AFAIK.

And I need 32k FFT

godsic

Journeyman III

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-18-2009
07:05 PM

FFT library for ATI GPU - does it exist?

It must be power of 2!. Or you need to use interpolation to power of 2. Some using zero padding (cause some painful artifacts) . 32k FFT will depends on CPU-NB speed because of GPU limitation. 8192 is just address alignment and memory paging architecture of GPU limitation. Maybe AMD using 13 bit page memory registers in their TMU

32k 2D or 1D? Therefore 2D or 1D FFT?

Russian

Journeyman III

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-18-2009
10:59 PM

FFT library for ATI GPU - does it exist?

Originally posted by:Raistmer

Good news! There is some FFT implementation for CUDA posted by Volkov on nVidia forums, but unfortunately only power of 2 up to 8192 supported for now AFAIK. And I need 32k FFT

Bad news that it will take only 20% of GPU perfomance. Memory bandwidth is not a bottelneck in this case.

riza_guntur

Journeyman III

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-19-2009
02:17 AM

FFT library for ATI GPU - does it exist?

Originally posted by:It must be power of 2!. Or you need to use interpolation to power of 2. Some using zero padding (cause some painful artifacts) . 32k FFT will depends on CPU-NB speed because of GPU limitation. 8192 is just address alignment and memory paging architecture of GPU limitation. Maybe AMD using 13 bit page memory registers in their TMUgodsic

32k 2D or 1D? Therefore 2D or 1D FFT?

The limitation comes from maximum texture size the card can handle.

AFAIK the 3D stream don't have such limitation (yet, I don't see 3D stream size information anywhere in Stream Computing User Guide, you may want to refer anything from there).

If you want to build FFT for ATI, make sure to create different function for different size. Small, medium and large must use different approach.

godsic

Journeyman III

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-19-2009
03:36 AM

FFT library for ATI GPU - does it exist?

to Russian:

I think that count of TMU and their performance are dominant things. Because for each element of array you need to fetch a lot of other data.

For FFT algorithms GPU will probably need large caches and TMU count.

Other thing is the data represintation, dont remember that even 1D array must be rearranged to 2D with, if it possible, M x wavefrontsize *N size, where M and N possitive integers, it will be greate if M and wavefrontsize *N are power of 2 numbers . If size is differ than you will note utilizes the full power of GPU and on-chip cache will work inefficient. Typically, for R6xx and R7xx wavefrontsize = 64.

to riza.guntur:

Yes, but texture size limitation cames from memory organization and TMU architecture. Maximum dimension for 3D texture is 8192x8192x8192!

As far as I know CAL runtime can virtualize addresses and therefore accept large arrays with some reduction in performance.

Raistmer

Adept II

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-19-2009
10:25 AM

FFT library for ATI GPU - does it exist?

Originally posted by:godsic

It must be power of 2!. Or you need to use interpolation to power of 2. Some using zero padding (cause some painful artifacts) . 32k FFT will depends on CPU-NB speed because of GPU limitation. 8192 is just address alignment and memory paging architecture of GPU limitation. Maybe AMD using 13 bit page memory registers in their TMU

32k 2D or 1D? Therefore 2D or 1D FFT?

1D FFT only here.

This app uses only 32k FFT, but another one I'm interested in uses different power of 2 down to size of 8

Raistmer

Adept II

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-19-2009
10:29 AM

FFT library for ATI GPU - does it exist?

Originally posted by:godsic

As far as I know CAL runtime can virtualize addresses and therefore accept large arrays with some reduction in performance.

That not work in last Catalyst versions