About

Blog này được tạo ra nhằm chia sẻ những kiến thức, kinh nghiệm về những vấn đề cơ bản của tin học, âm nhạc, và truyện cười (một chút hài hước cho cuộc sống).

31 Responses to “About”

  1. vẫn là svcnt47 Says:

    “Blog này được tạo ra nhằm chia sẻ những kiến thức, kinh nghiệm về những vấn đề cơ bản của tin học, âm nhạc, và truyện cười (một chút hài hước cho cuộc sống)”
    Thảo nào thầy vui tính thế.
    Nhưng mà em không thấy trong blog này có tí chia sẻ âm nhạc nào cả nhỉ?
    chắc viết thế cho nó hoành tráng thầy nhỉ?

    • 4fire Says:

      Không phải là không có âm nhạc. Mà là chưa có time để post lên. Vả lại tôi nghĩ lại rồi, nhạc Rock và New Age thì không phải ai cũng thích nên tạm thời chưa có gì cho phần này.

  2. Đặng Hoang Anh Says:

    Secret Garden. Em thích nhạc đó !(^^)
    Hehe anh tuân đưa cả truyện chưởng nữa anh ạ
    “Trên đời có 2 loại người, 1 loại người thích truyện chưởng và một loại người không thích truyện chưởng”

  3. hok bit Says:

    :-s :-s :-s

  4. vẫn là sv cnt47dh Says:

    thưa thầy,thầy giải thích một chút 4fire là gì?
    phần about thì cũng phải “about” một tí chứ

  5. 4fire Says:

    4fire – Ngọn lửa nhiệt huyết của tuổi trẻ, cháy mãi không ngừng.

  6. Mr Thuy Says:

    Lãng mạn đấy. Nhưng mà cần thiết. Cố gắng dành thời gian để duy trì. Chúc vui và thành công!

  7. Bùi Quang Đoàn Says:

    Blog của thầy dạo này cô tịch quá. Em nghe bạn bè nói thầy đang làm tiến sỹ bên Pháp. Bên đó chắc đẹp lắm thầy nhỉ. Em chúc thầy luôn mạnh khỏe và sớm hoàn thành luận án tiến sỹ với kết quả tốt nhất!

  8. Nguyễn Trung Hiếu Says:

    Em chào thầy,
    Hiện tại em đang làm một project C++ trên visual studio 2008 trong đó có một phần cần tính ‘svd’ và ‘svds’.

    Theo tìm hiểu của em thì em chỉ biết mình cần dùng Lapack. Lúc đầu em sử dụng “reference BLAS” trong đường link sau http://icl.cs.utk.edu/lapack-for-windows/clapack/index.html , tức là không cần build thư viện của Lapack, kết quả ra tốt nhưng tốc độ rất chậm. Với ma trận 510×2072, phải mất gần 1 phút mới tính xong SVD, trong khi cấu hình máy em đang sử dụng là core Quad Q8300. Trong khi đó, sử dụng trên Matlab để tính svd ma trận này chỉ mất vài giây.

    Sau đó em tính build thư viện từ GotoBlas2 và OpenBlas, nhưng em thử mọi cách, tham khảo trên mạng… mà build thư viện vẫn failed với cả win xp lẫn win7. Em tính sử dụng cái OpenBlas binary, tức thư viện compiled sẵn, nhưng báo lỗi cần header trong khi C++ chỉ có header .

    Thật sự em vẫn còn mới trong lĩnh vực này, mong thầy dành thời gian giúp em vấn đề này được không ạ? Bây giờ em muốn compile thư viện cho visual studio từ OpenBlas thì phải làm thế nào để không bị failed ạ? (em đã thử rất nhiều cách với Mingw, cywin…). Một vấn đề nữa là em có thấy 1 post của thầy so sánh tốc độ giữa Matlab và OpenBLAS 1.0 + Lapack 3.4.1, thầy sử dụng precompiled lib mà sao tốc độ nhanh thế, thầy có thể chỉ em cách sử dụng được không a.?

    Thầy có thể chỉ em qua mail: hieunguyen1989@gmail.com
    Mong thầy giúp em. Em cám ơn thầy nhiều!

    • Nguyễn Trung Hiếu Says:

      Hình như có chút lỗi khi post comment thầy ơi! Câu 2đoạn thứ 3 là như vầy: Em tính sử dụng cái OpenBlas binary, tức thư viện compiled sẵn, nhưng báo lỗi cần header complex.h trong khi C++ chỉ có header complex

      • 4fire Says:

        Chào em, cách đơn giản nhất để sử dụng lapack và OpenBlas là dịch OpenBlas và nó sẽ tự động thêm phần lapack vào (download và dịch để đưa vào thư viện OpenBlas) và sử dụng MinGW, cấu hình không có gì mà chỉ cần mỗi hai lệnh make và install. OpenBlas là các thao tác cơ bản của ma trận như nhân, cộng … còn lapack là cho các thao tác như eigenvalue decomposition hay svd …
        Kết quả tôi đưa ra trong bài viết là dùng OpenBlas từ bản 0.10 từ cách đây hơn 1 năm, so với Matlab thì ngang ngửa vì thực chất Matlab (bản từ 2010b về trước) cũng dùng lapack, tuy nhiên nếu em dùng bản precompiled thì sẽ chậm hơn vì nó chỉ chạy với 1 core của CPU, cái này không phụ thuộc vào máy em chạy mà do cấu hình khi dịch đã bị fixed như vậy. Còn nếu mình tự build thì nó sẽ fix theo cấu hình dùng để build thư viện, số luồng song song sẽ băng với số core của CPU nên sẽ nhanh hơn. Một cách khác là có thể dùng Intel MKL, tốc độ cũng tương đương.

        • Nguyễn Trung Hiếu Says:

          Em cám ơn thầy nhiều vì đã trả lời em!
          Theo em biết, với phiên bản hiện tại thì hình như OpenBlas đã tích hợp lapack vào nếu để default. Vấn đề của em là em không thể compile được OpenBlas, kết quả lúc nào cũng lỗi.

          Những người phát triển OpenBlas cũng đang cung cấp bản precompiled là OpenBlas binary. Nhưng khi em sử dụng thì báo lỗi không có header complex.h. Theo em tìm hiểu thì header complex.h nằm trong C99, mà MS visual studio không support C99.
          Em cám ơn nhiều,

          • 4fire Says:

            Em cài MinGW, lưu ý là cần có Msys để giả lập shell giống trên Linux, sau đó giải nén thư mục OpenBlas và cd vào thư mục đó, gõ make, chờ một thời gian để dịch xong, sau đó gõ make install để cài và có thư mục include chứa các file header để sử dụng, Nếu không có lệnh install này thì lúc chạy nó sẽ hỏi cái file complex.h giống như em đã gặp. Có lỗi nào em có thể post lên đây, tôi có thể giúp xem thế nào.

  9. Nguyễn Trung Hiếu Says:

    Em chào thầy!
    Em đã cài MinGW, khi cài em có check vào Msys, nên em nghĩ là em đã cài Msys rồi. Em đã làm các bước thầy nói như trên, nhưng khoảng 10′ sau khi gõ make, em gặp lỗi này:
    untitled
    Em cũng không biết đó là lỗi gì nữa. Mong thầy giúp em!

    • 4fire Says:

      Có một chi tiết nữa là bản OpenBLAS em download ở đâu về? Tôi dùng bản develop từ github: https://github.com/xianyi/OpenBLAS/ và không có lỗi gì cả. Nhưng bản zip có thể bị lỗi, em có thể xem ở đây: https://github.com/xianyi/OpenBLAS/issues/228

      • Nguyễn Trung Hiếu Says:

        Em chào thầy,
        Bản OpenBlas em down ở github. Em đã down bản tar.gz thì em gặp lỗi này khi chạy lệnh ‘make’: make[1]: lib: command not found.
        Untitled 1

        Khi chạy ‘make install’ thì em gặp lỗi này: make[1]: [install] Error1
        2

        Thêm vào đó là em không thể tìm thấy bất cứ file *.lib nào trong folder cài đặt
        Mong thầy giúp em,

        • 4fire Says:

          Tôi đã xem hai thông báp:
          Thông báo 1: em đã dịch thành công, có file .dll cho Windows và .a cho Linux, tuy nhiên lệnh lib bị sai vì em không có đường dẫn tới lệnh này, nó nằm trong thư mục của Visual Studio, em cần tìm và thêm nó vào biến môi trường Path.
          Thông báo 2: đã install thành công, em xem trong thư mục của msys sẽ thấy thư mục include, em cần thư mục đó, 2 file .dll và .lib là ok để dùng với Visual.
          Như vậy là chỉ có 1 lỗi khi tạo file .lib thôi. Chúc em thành công.

          • Nguyễn Trung Hiếu Says:

            Em chào thầy,
            Em đã add lệnh lib có đường dẫn “C:\Program Files\Microsoft Visual Studio 9.0\VC\bin” vào biến môi trường Path. Khi chạy lại lệnh ‘make’ em gặp thông báo lỗi này
            Untitled 1

            Sau khi nhấn OK thì em nhận được kết quả:
            2

            Và cuối cùng là không có file *.lib nào được tạo. Mong thầy giúp em. Em xin cám ơn thầy nhiều

          • 4fire Says:

            Em nên xóa hẳn thư mục OpenBLAS, giải nén lại từ file .tar.gz rồi chạy lại lệnh make từ đầu. Nên đổi tên thư mục thành openblas thôi cho ngắn gọn. Về báo lỗi số 1 thì do em thiếu đường dẫn tới file .dll, tôi dùng VS 2010 và cần các đường dẫn này:
            C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;C:\Program Files\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;
            Em xem cái tương tự của Visual 2008 và add và biến PATH nhé.
            Còn thông báo 2 có lẽ là do em chạy lại lệnh make trong thư mục mà em đã chạy 1 lần rồi, ngày xưa tôi cũng 1 lần gặp lỗi này.

  10. Nguyễn Trung Hiếu Says:

    Em làm được rồi thầy ơi! Em cám ơn thầy nhiều!
    Nếu như em còn vấn đề gì trong việc thư viện, mong thầy giúp em!

    • Nguyễn Trung Hiếu Says:

      Em chào thầy,
      Em gặp lỗi thiếu complex.h khi include lapacke.h
      Em phải làm cách nào để giải quyết đây thầy

      • 4fire Says:

        Em thêm hai dòng khai báo này:
        #define lapack_complex_float std::complex&ltfloat&gt
        #define lapack_complex_double std::complex&ltdouble&gt
        vào trước chỉ thị
        #ifndef lapack_complex_float
        của file lapacke.h là OK thôi.

        • Nguyễn Trung Hiếu Says:

          Em chào thầy,
          Em thêm hai dòng này vào thì thông báo lỗi này:
          untitled
          Em đã cố add thêm namespace std vào nhưng không được!

          • 4fire Says:

            Em post code của em lên đây xem nào? Theo tôi có lẽ là do VS 2008, em thử với VS 2010 xem thế nào?

  11. Nguyễn Trung Hiếu Says:

    Code của em chưa có gì hết. Mới chỉ
    include stdio.h
    include stdlib.h
    include lapacke.h

    void main()
    {
    }

    Có lẽ để em thử cài bản VS2010 rồi thử lại

    • Nguyễn Trung Hiếu Says:

      Em chào thầy,
      Em đã cài VS2010 nhưng kết quả vẫn vậy.
      Đây là code chính của chương trình, hầu như chưa có gì, em mới chỉ include thư viện:
      1

      File lapacke.h em đã sửa:
      2

      Các thư mục ‘include’ và ‘lib’ em để trong đường dẫn này:
      6

      Add folder ‘include’ vào project:
      3

      Add folder ‘lib’ vào project:
      4

      Add thư viện *.lib vào project, có những file *.lib có sẵn khi tạo project mới (bên VS2008 không có file này)
      5

      Mong thầy giúp em!

      • 4fire Says:

        OK, tôi đã test code của em trên máy của tôi, cũng có lỗi như em đã post. Nhưng kỳ lạ là mấy project của tôi đã viết thì dịch lại không có lỗi gì. Tôi đã xem lại và thấy rằng, các project đó không có lỗi vì tôi dùng thêm OpenCV, và include mấy file header sau:
        #include opencv2\opencv.hpp
        #include opencv2\imgproc\imgproc_c.h
        #include opencv2\core.hpp
        #include opencv2\core\core_c.h
        Thật kỳ lạ, chắc có khai báo cho kiểu complex trong mấy file này, vì tôi toàn dùng với OpenCV nên tìm lỗi này hơi mất thời gian.

        • Nguyễn Trung Hiếu Says:

          Em chào thầy, thầy có thể viết lại tên mấy file header được không thầy, reply bên trên không thể thấy được, thầy đừng để trong dấu là OK. Em cũng từng dùng Opencv, nên chắc em cũng mò luôn.
          Em cám ơn thầy nhiều!

          • Nguyễn Trung Hiếu Says:

            Em làm được rồi thầy ơi, cụ thể như sau:
            File chính
            1

            File lapacke.h em có sửa đôi chút so với cách của thầy sửa:
            2

            Em đã chạy example rồi, kết quả ra đúng, tuy nhiên em không hiểu lắm biến ‘matrix_oder’, đó có phải là cách mình sắp xếp ma trận không thầy?

          • 4fire Says:

            Tôi sửa file .h y hệt như vậy mà, tôi đã xem lại reply cho em lần trước, thiếu mất float và double, do lỗi post trên wordpress thôi.
            matrix_order là kiểu ma trận em sử dụng là RowMajor hay ColMajor, thường thì là ColMajor.

  12. Nguyễn Trung Hiếu Says:

    Em cám ơn thầy nhiều! Em đã học được rất nhiều từ sự giúp đỡ của thầy!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: