Chuyển đến nội dung chính
T0 Công ty lớn Baidu

Baidu AI Infra (2)

Câu hỏi phỏng vấn AI Infra tại Baidu thật, gồm tối ưu toán tử

Tối ưu toán tử

Vòng một

Đào sâu dự án

  1. Giới thiệu dự án và bài báo trên CV, hỏi tiếp quanh các điểm kỹ thuật liên quan

Tính toán hiệu năng cao

  1. Mở vùng song song OpenMP thế nào? (cú pháp liên quan pragma omp parallel)
  2. Trong vùng song song, chạy for(int i=0;i<100;i++){sum++;} kết quả có khớp tuần tự không? Làm sao bảo đảm nhất quán?
  3. Phân cấp bộ nhớ GPU: phạm vi của Register File, L1 Cache, Shared Memory, L2 Cache, Global Memory

Kiến trúc máy tính

  1. Phân loại và đặc điểm ánh xạ Cache (set-associative, fully associative, direct-mapped)

Nền tảng C++

  1. Phân loại smart pointer và kịch bản dùng
  2. Khái niệm và cách triển khai đa hình C++ (khác biệt override và overload)
  3. Khác biệt dynamic linking và dynamic binding

Vòng hai

Đào sâu dự án

  1. Thảo luận sâu quanh CV và dự án

Nền tảng C++

  1. Cấu trúc dữ liệu tầng dưới của STL map là gì?
  2. Khác biệt BST cân bằng (AVL) và red-black tree
  3. Nguyên lý triển khai tầng dưới của unordered_map
  4. Cách xử lý xung đột hash phổ biến

Kiến trúc máy tính

  1. Phân cấp lưu trữ máy tính (register, Cache, main memory, secondary storage)
  2. Trong CPU, register mà lập trình viên ứng dụng thấy được chia loại nào? Program counter (PC) làm gì?

Khác

  1. Các lệnh hệ điều hành thường dùng?

Vòng ba

Nền tảng C++

  1. Chạy một hàm trước khi main chạy thế nào?
  2. Khi debug, đặt conditional breakpoint thế nào?
  3. Theo dõi call stack thế nào?
  4. Chương trình phân đoạn trong bộ nhớ thế nào (code, data, heap, stack, v.v.)
  5. Nguyên lý triển khai tầng dưới của STL deque

Kiến trúc máy tính

  1. Register hay Cache nhanh hơn? Cache và main memory mỗi cái dùng kỹ thuật gì? Giống và khác gì?

Lập trình CUDA

  1. Phân loại bộ nhớ trong CUDA (local memory, global memory, v.v.)
  2. Khái niệm Kernel; vai trò của __global__
  3. Lấy số thread tối đa GPU cho phép thế nào?

Thuật toán

  1. Khác biệt greedy và dynamic programming
  2. Thuật toán tìm kiếm trên đồ thị phổ biến (BFS, DFS)