code: func (fn Function) MaxActiveBlocksPerMultiProcessor(blockSize int, dynamicSmemSize int64) (int, error) {
  	bs := C.int(blockSize)
  	dss := C.size_t(dynamicSmemSize)
  
  	var numBlocks C.int
  	if err := result(C.cuOccupancyMaxActiveBlocksPerMultiprocessor(&numBlocks, fn.fn, bs, dss)); err != nil {
  		return 0, err
  	}
  	return int(numBlocks), nil
  }
docs: // MaxActiveBlocksPerMultiProcessor returns the number of the maximum active blocks per streaming multiprocessor.