libblas.so.3 illegal instruction on AMD E-450

Bug #1117335 reported by Nghia on 2013-02-06
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
atlas (Ubuntu)
Undecided
Unassigned

Bug Description

Xubuntu 12.10 64bit
libblas3 1.2.20110419-5

Doing a basic matrix multiply in Octave will crash with "panic: Illegal instruction" on a laptop with an AMD E-450 APU on a HP Pavilion DM1. These are the commands used in Octave:

A = rand(3,3);
A*A

Running gdb on a custom program reveals the crash occurs with this function in libblas
dgemm_otcopy_BARCELONA() from /usr/lib/libblas3.so

I suspect it's an assembly instruction not supported by this CPU.

Nghia (nghiaho12) wrote :
Dave Gilbert (ubuntu-treblig) wrote :

Interesting, I noticed bug 1122030 today - not sure if it's related.

Since you have it at a gdb, could you do:

x/i $pc

at the point it fails (possibly the disassemble command may work) to see what the instruction is.

Also can you post the output of cat /proc/cpuinfo on your machine to see what the CPU claims to support.

Dave

Changed in blas (Ubuntu):
status: New → Incomplete
Nghia (nghiaho12) wrote :

It must be the same bug as reported there. I executed your commands and it says "femms".

This is the output from /proc/cpuinfo

processor : 0
vendor_id : AuthenticAMD
cpu family : 20
model : 2
model name : AMD E-450 APU with Radeon(tm) HD Graphics
stepping : 0
microcode : 0x5000101
cpu MHz : 825.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat hw_pstate npt lbrv svm_lock nrip_save pausefilter
bogomips : 3292.93
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor : 1
vendor_id : AuthenticAMD
cpu family : 20
model : 2
model name : AMD E-450 APU with Radeon(tm) HD Graphics
stepping : 0
microcode : 0x5000101
cpu MHz : 825.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat hw_pstate npt lbrv svm_lock nrip_save pausefilter
bogomips : 3292.93
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

Sylvestre Ledru (sylvestre) wrote :

It is not about blas but atlas (libblas is just a symlink).

You should rebuild atlas for your system. By default, Debian (and therefor Ubuntu) are shipping a low performance compilation of atlas.
You will find the information in the README.Debian file.

affects: blas (Ubuntu) → atlas (Ubuntu)
Dave Gilbert (ubuntu-treblig) wrote :

Hi Sylvestre,
  Can you explain your comment a bit; libblas for me is not a symlink; and as for the low performance compilation; it seems to the opposite problem in this case - it's trying to run a barcelona optimised version of the code that is using an instruction not available on this cpu.

Dav

Changed in atlas (Ubuntu):
status: Incomplete → Confirmed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers