Compute-in-Memory Technologies and Architectures for Deep Learning Workloads