2013-05-04 22 views
12

Đối với một ma trận A, các documentation chỉ khẳng định rằng các thông số kích thước tương ứng hàng đầu lda đề cập đến:Làm rõ kích thước hàng đầu trong CUBLAS khi transposing

kích thước của mảng hai chiều sử dụng để lưu trữ ma trận hàng đầu A

Vì vậy, tôi cho rằng đây chỉ là số hàng của A cho định dạng lưu trữ chính của cột CUBLAS. Tuy nhiên, khi chúng tôi xem xét Op(A), thứ nguyên hàng đầu đề cập đến bây giờ là gì?

Trả lời

10

Không có thay đổi nào. Kích thước hàng đầu luôn là là chiều dài của thứ nguyên đầu tiên của mảng. Các cờ đặt hàng dữ liệu (bình thường, chuyển vị, liên hợp) chỉ biểu thị cho BLAS cách dữ liệu trong mảng được lưu trữ. Chúng không ảnh hưởng đến bản thân mảng, luôn luôn được đặt hàng lớn theo cột và yêu cầu giá trị LDA để lập chỉ mục trong 2D.

Vì vậy, cho dù dữ liệu ma trận được lưu trữ ở dạng transposed hay không, một mảng m x n luôn có LDA> = m.

+2

Từ câu trả lời của bạn, tôi đã sẵn sàng kết luận rằng LDA = m. Tại sao dấu> ở đó? :/+1 btw. Có lẽ điều này trả lời câu hỏi sau khi tất cả: http://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=217 – gsamaras

+1

@gsamaras: Hãy suy nghĩ về khi một cuộc gọi BLAS hoạt động trên một submatrix, hoặc khi phần cứng hoạt động tốt hơn khi các * pitch * của ma trận phù hợp với một kích thước bộ điều khiển bộ nhớ, hoặc kích thước dòng bộ nhớ cache hoặc bất cứ điều gì. Xem http://stackoverflow.com/q/8206563/681865 – talonmies

+0

Cảm ơn! Câu trả lời của bạn phải là câu trả lời được chấp nhận có IMHO. "Tham số LDA trong BLAS thực sự là bước tiến của ma trận khi nó được trình bày trong bộ nhớ tuyến tính." ||| Bây giờ, tôi muốn chuyển sang trường hợp phân tán, vì vậy nếu bạn có thời gian, có thể bạn có thể thực hiện một câu hỏi tại câu hỏi này: http://stackoverflow.com/questions/30937544/confused-with-pdpotrf-arguments – gsamaras

Các vấn đề liên quan