I suppose that the fft limitation is due fftw supporting only float32 and
float64.
I am not sure if simd supports float16. If not you should not expect any
speed gains.
Cheers
Tobi
Am Dienstag, 23. Dezember 2014 11:56:46 UTC+1 schrieb Mark B:
>
> I was wondering how Julia supports half precision operations? It seems it
> does (more or less) but I'm not sure if there's a lot of type conversion
> going on behind the scenes with associated overhead. Would it be more
> efficient to store and crunch on Float32s?
>
> julia> rand(Float16,2,2) * rand(Float16,2,2)
> 2x2 Array{Float16,2}:
> 0.58301 1.0508
> 0.48145 0.73438
>
> julia> sparse(rand(Float16,2,2))
> 2x2 sparse matrix with 4 Float16 entries:
> [1, 1] = 0.448
> [2, 1] = 0.15771
> [1, 2] = 0.79932
> [2, 2] = 0.50928
>
> julia> fft(rand(Float16,2,2))
> 2x2 Array{Complex{Float64},2}:
> 1.76245+0.0im -0.0603027+0.0im
> -0.129639+0.0im -0.390869+0.0im
>
> Oops for the last one - is fft always double precision?
>
>