Đại học Lê Quý Đôn - 236 Hoàng Quốc Việt - Hà Nội

Chia sẻ kiến thức mọi mặt của các lớp cao học CNTT, Học viện Kỹ thuật Quân sự




Chào mừng đã đến với forum khmt.123.st
  • Bạn chưa đăng kí (hoặc chưa đăng nhập) nên quyền lợi của bạn sẽ bị hạn chế. Việc đăng kí làm thành viên hoàn toàn miễn phí, sau khi đăngkí bạn có thể post bài, tham gia thảo luận , nhìn thấy link ở những box hạn chế ... và rất nhiều quyền lợi khác. Thủ tục đăng kí rất nhanh chóng và đơn giản, hãy Đăng kí làm thành viên !
  • Nếu bạn quên mật khẩu, xin nhấn vào đây !
  • Nếu bạn gặp trục trặc trong vấn đề đăng kí hoặc không thể đăng nhập, hãy liên hệ với chúng tôi.




  • Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

    1 Giúp em bài tập Multimedia on Wed Apr 18, 2012 11:43 pm

    thanhnamboy


    Thành viên bắt đầu chia sẻ
    Thành viên bắt đầu chia sẻ
    Nhờ các anh chị giúp em bài tập này với.
    Em chạy ví dụ của thầy giáo về tính tích vô hướng của 2 vector
    Khi em nhập đầu vào cho bài toán thì đầu ra không như ý.
    Kết quả sau khi chạy chương trình la:

    -1.#INDOO

    Mong các anh chị giúp em giải quyêt bai toán này!
    Dưới đây là code chương trình:
    // baitap.cpp : Tích vô hương của 2 vector.

    #include "stdafx.h"
    #include < conio.h >
    #include < stdio.h >
    #include "emmintrin.h"
    #include "mmintrin.h"
    #define N 1024
    int main()
    {
    float *x =(float *)_mm_malloc(N,16);//cap phat bo nho
    float *y =(float *)_mm_malloc(N,16);
    x[1]=2;x[2]=4;x[3]=6;x[4]=8;
    y[1]=1;y[2]=3;y[3]=5;y[4]=7;
    __m128 X,Y;// kieu dl 128nbit dang so thuc
    __m128 acc = _mm_setzero_ps();//kieu dl 128 bit dang so thuc...
    //float k = x[1]*y[1] + x[2]*y[2] + x[3]*y[3] + x[4]*y[4];
    //printf("\n%f",k);
    float sum;
    float*temp=(float*)_mm_malloc(4,16);
    FOR ( int i=0;i < N-4;i+=4 )
    {
    X = _mm_load_ps(&x[i]);// lay dia chi cua pt thu i
    Y = _mm_load_ps(y+i);//lay pt thu i + voi y phan tu
    acc = _mm_add_ps(acc,_mm_mul_ps(X,Y));//nhan 2 so X,Y voi nhau sau do cong don ket qua lai
    }
    _mm_store_ps(&temp[0],acc);//dia chi tmp=0;sau khi ket qua acc tinh xong gan ket qua vao pt temp =0;
    sum = temp[0]+ temp[1]+ temp[2]+temp[3];
    printf("\n%f",sum);
    //printf("\nsuccessful");
    getch();
    }



    Được sửa bởi thanhnamboy ngày Thu Apr 19, 2012 8:17 am; sửa lần 2.

    2 Re: Giúp em bài tập Multimedia on Thu Apr 19, 2012 7:50 am

    Cuong01111


    Quản trị viên
    Quản trị viên
    Có một số vấn đề trong phần code trên:
    1. Vì cấp phát mảng x, y quá lớn, 1024 phần tử. TRong khi đó chỉ truyền giá trị có 4 phần tử. Gợi ý: sử dụng N = 8 xem, truyền đủ giá trị 8 phần tử thôi (demo)
    2. Khi đưa code vào diễn đàn lên đưa đầy đủ, ví dụ: vòng lặp FOR


    Em thử lại đi. Anh code OK rồi, tự sửa nhé.


    ================

    Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

    Permissions in this forum:
    Bạn không có quyền trả lời bài viết

     

    Ghi rõ nguồn khi copy các bài viết từ Website này.
    Bản quyền thuộc Khoa học Máy tính. Số lượt truy cập tính đến hiện tại:Website counter
    Modified skin by Nguyễn Anh Cường. Developed by Members of http://khmt.123.st

    Forumotion.com | © PunBB | Free forum support | Liên hệ | Report an abuse | Free blog