add compute unit
merge with chang