Tôi có một vectơ cột A dài 10 phần tử. Tôi có một ma trận B là 10 của 10. Bộ nhớ lưu trữ cho B là cột chính. Tôi muốn ghi đè lên hàng đầu tiên trong B với vectơ cột A.Có phiên bản memcpy tiêu chuẩn, có cấu trúc không?
Rõ ràng, tôi có thể làm:
for (int i=0; i < 10; i++)
{
B[0 + 10 * i] = A[i];
}
nơi tôi đã rời khỏi zero trong 0 + 10 * i
để nhấn mạnh rằng B sử dụng cột lưu trữ lớn (số không là chỉ mục hàng).
Sau một số tai nạn ở đất CUDA tối nay, tôi đã nghĩ rằng có thể có một chức năng CPU để thực hiện một memcpy strided? Tôi đoán ở một mức độ thấp, hiệu suất sẽ phụ thuộc vào sự tồn tại của một hướng dẫn tải/lưu trữ strided, mà tôi không nhớ có được trong lắp ráp x86?
có thể bạn nên xem xét chuyển đổi chiến lược lưu trữ cho ma trận này hoặc lưu trữ chuyển vị của nó. –